3 min read

[Level 2] ์œ„์žฅ - ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต

Table of Contents

์œ„์žฅ ๋ฌธ์ œ ํ’€์ด

๋ฌธ์ œ

๋ฌธ์ œ ์—ด์–ด๋ณด๊ธฐ

์ŠคํŒŒ์ด๋“ค์€ ๋งค์ผ ๋‹ค๋ฅธ ์˜ท์„ ์กฐํ•ฉํ•˜์—ฌ ์ž…์–ด ์ž์‹ ์„ ์œ„์žฅํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜ท์ด ์•„๋ž˜์™€ ๊ฐ™๊ณ  ์˜ค๋Š˜ ์ŠคํŒŒ์ด๊ฐ€ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ, ๊ธด ์ฝ”ํŠธ, ํŒŒ๋ž€์ƒ‰ ํ‹ฐ์…”์ธ ๋ฅผ ์ž…์—ˆ๋‹ค๋ฉด ๋‹ค์Œ๋‚ ์€ ์ฒญ๋ฐ”์ง€๋ฅผ ์ถ”๊ฐ€๋กœ ์ž…๊ฑฐ๋‚˜ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ ๋Œ€์‹  ๊ฒ€์ • ์„ ๊ธ€๋ผ์Šค๋ฅผ ์ฐฉ์šฉํ•˜๊ฑฐ๋‚˜ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ข…๋ฅ˜์ด๋ฆ„
์–ผ๊ตด๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ, ๊ฒ€์ • ์„ ๊ธ€๋ผ์Šค
์ƒ์˜ํŒŒ๋ž€์ƒ‰ ํ‹ฐ์…”์ธ 
ํ•˜์˜์ฒญ๋ฐ”์ง€
๊ฒ‰์˜ท๊ธด ์ฝ”ํŠธ

์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ๋“ค์ด ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ์—ด clothes๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ์„œ๋กœ ๋‹ค๋ฅธ ์˜ท์˜ ์กฐํ•ฉ์˜ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • clothes์˜ ๊ฐ ํ–‰์€ [์˜์ƒ์˜ ์ด๋ฆ„, ์˜์ƒ์˜ ์ข…๋ฅ˜]๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ์˜ ์ˆ˜๋Š” 1๊ฐœ ์ด์ƒ 30๊ฐœ ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์˜์ƒ์€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • clothes์˜ ๋ชจ๋“  ์›์†Œ๋Š” ๋ฌธ์ž์—ด๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋“  ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 20 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ด๊ณ  ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž ๋˜๋Š” โ€™_โ€™ ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ŠคํŒŒ์ด๋Š” ํ•˜๋ฃจ์— ์ตœ์†Œ ํ•œ ๊ฐœ์˜ ์˜์ƒ์€ ์ž…์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

clothesreturn
[[yellow_hat, headgear], [blue_sunglasses, eyewear], [green_turban, headgear]]5
[[crow_mask, face], [blue_sunglasses, face], [smoky_makeup, face]]3

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

  • ์˜ˆ์ œ #1
    headgear์— ํ•ด๋‹นํ•˜๋Š” ์˜์ƒ์ด yellowhat, greenturban์ด๊ณ  eyewear์— ํ•ด๋‹นํ•˜๋Š” ์˜์ƒ์ด blue_sunglasses์ด๋ฏ€๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด 5๊ฐœ์˜ ์กฐํ•ฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    1. yellow_hat
    2. blue_sunglasses
    3. green_turban
    4. yellow_hat + blue_sunglasses
    5. green_turban + blue_sunglasses
  • ์˜ˆ์ œ #2
    face์— ํ•ด๋‹นํ•˜๋Š” ์˜์ƒ์ด crowmask, bluesunglasses, smoky_makeup์ด๋ฏ€๋กœ ์•„๋ž˜์™€ ๊ฐ™์ด 3๊ฐœ์˜ ์กฐํ•ฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

    1. crow_mask
    2. blue_sunglasses
    3. smoky_makeup

ํ’€์ด

function solution(clothes) {
  let answer = 1;
  let obj = {};

  for (let i = 0; i < clothes.length; i++) {
    // ์˜ท์˜ ์ข…๋ฅ˜๋ณ„๋กœ ์ž…์„ ์ˆ˜ ์žˆ๋Š” ๊ฐฏ์ˆ˜ ์นด์šดํŠธ
    // ์ดˆ๊ธฐ๊ฐ’์€ 1, ์•ˆ ์ž…์—ˆ์„ ๊ฒฝ์šฐ๋„ ์ƒ๊ฐํ•ด์•ผ ํ•จ
    obj[clothes[i][1]] = (obj[clothes[i][1]] || 1) + 1;
  }

  const objArray = Object.keys(obj);
  for (let j = 0; j < objArray.length; j++) {
    answer *= obj[objArray[j]];
  }

  // ์ „๋ถ€๋‹ค ์•ˆ ์ž…์—ˆ์„ ๊ฒฝ์šฐ 1์„ ๋นผ์คŒ
  return answer - 1;
}

๋ฌธ์ œ ์ฃผ์ œ์ธ ํ•ด์‹œ์— ๋งž๊ฒŒ ๊ฐ ํ‚ค ๋ณ„๋กœ ์นด์šดํŠธ๋ฅผ ํ•œ ๋’ค ๊ณ„์‚ฐ์„ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ๋ชจ๋‘ ์ž…์—ˆ์„ ๋•Œ, ์•ˆ์ž…์—ˆ์„ ๋•Œ ๋“ฑ์˜ ์˜ˆ์™ธ ์ƒํ™ฉ๋“ค์ด ์ƒ๊ธธ ์ˆ˜๊ฐ€ ์žˆ๋Š”๋ฐ ๋ฌธ์ œ์™€ ์ œํ•œ์‚ฌํ•ญ๋“ค์„ ๊ผผ๊ผผํžˆ ์ž˜ ์ฝ์–ด๋ณด๋„๋ก ํ•ด์•ผ๊ฒ ๋‹ค.