Contents

Costume (with.Java)

   Jun 3, 2024     2 min read

โ€œ์˜์ƒ (with.Java)โ€ ๋ฌธ์ œ์— ๋Œ€ํ•˜์—ฌ ์•Œ์•„๋ณธ ๊ธ€์ž…๋‹ˆ๋‹ค.

์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉฐ, ํ’€์—ˆ๋˜ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํšŒ๊ณ ์™€ ๋‹ค๋ฅธ ํ’€์ด ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋ฉฐ, ์•Œ์•„๊ฐ€๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ์— ๋Œ€ํ•ด ๋จผ์ € ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ

์ฝ”๋‹ˆ๋Š” ๋งค์ผ ๋‹ค๋ฅธ ์˜ท์„ ์กฐํ•ฉํ•˜์—ฌ ์ž…๋Š”๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.

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

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

์ฝ”๋‹ˆ๋Š” ๊ฐ ์ข…๋ฅ˜๋ณ„๋กœ ์ตœ๋Œ€ 1๊ฐ€์ง€ ์˜์ƒ๋งŒ ์ฐฉ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์œ„ ์˜ˆ์‹œ์˜ ๊ฒฝ์šฐ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ๊ณผ ๊ฒ€์ • ์„ ๊ธ€๋ผ์Šค๋ฅผ ๋™์‹œ์— ์ฐฉ์šฉํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์ฐฉ์šฉํ•œ ์˜์ƒ์˜ ์ผ๋ถ€๊ฐ€ ๊ฒน์น˜๋”๋ผ๋„, ๋‹ค๋ฅธ ์˜์ƒ์ด ๊ฒน์น˜์ง€ ์•Š๊ฑฐ๋‚˜, ํ˜น์€ ์˜์ƒ์„ ์ถ”๊ฐ€๋กœ ๋” ์ฐฉ์šฉํ•œ ๊ฒฝ์šฐ์—๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ์˜ท์„ ์ฐฉ์šฉํ•œ ๊ฒƒ์œผ๋กœ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

์ฝ”๋‹ˆ๋Š” ํ•˜๋ฃจ์— ์ตœ์†Œ ํ•œ ๊ฐœ์˜ ์˜์ƒ์€ ์ž…์Šต๋‹ˆ๋‹ค.

์ฝ”๋‹ˆ๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ๋“ค์ด ๋‹ด๊ธด 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

๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‚˜์˜ ํ’€์ด

import java.util.*;

class Solution {
    public int solution(String[][] clothes) {
        int answer = 1;
        HashMap<String, Integer> map = new HashMap<>();

        for(int i = 0; i < clothes.length; i++){
            map.put(clothes[i][1], map.getOrDefault(clothes[i][1], 0) + 1);
        }

        for(String key : map.keySet()){
            answer *= map.get(key) + 1;
        }
        return answer - 1;
    }
}

ํ’€์ด ๋ฆฌ๋ทฐ

solution ๋ฉ”์„œ๋“œ๋Š” ์ด์ฐจ์› ๋ฌธ์ž์—ด ๋ฐฐ์—ด clothes๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์Šต๋‹ˆ๋‹ค.

answer ๋ณ€์ˆ˜๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ , ๊ฒฐ๊ณผ๊ฐ’์„ ์ €์žฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ดˆ๊ธฐ๊ฐ’์„ 1๋กœ ์„ค์ •ํ•˜๋Š” ์ด์œ ๋Š” ์•„๋ฌด ์˜์ƒ๋„ ์ž…์ง€ ์•Š์€ ๊ฒฝ์šฐ๋ฅผ ๊ณ ๋ คํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค.

HashMap<String, Integer> ๊ฐ์ฒด map์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ด map์€ ์˜์ƒ์˜ ์ข…๋ฅ˜๋ฅผ ํ‚ค๋กœ ๊ฐ€์ง€๊ณ , ํ•ด๋‹น ์ข…๋ฅ˜์˜ ์˜์ƒ ์ˆ˜๋ฅผ ๊ฐ’์œผ๋กœ ๊ฐ€์ง‘๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ for ๋ฃจํ”„๋ฅผ ํ†ตํ•ด clothes ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ ์˜์ƒ์˜ ์ข…๋ฅ˜๋ฅผ ํ‚ค๋กœ ํ•˜์—ฌ map์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฏธ ํ•ด๋‹น ์ข…๋ฅ˜์˜ ์˜์ƒ์ด ์กด์žฌํ•œ๋‹ค๋ฉด ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚ต๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ for ๋ฃจํ”„๋ฅผ ํ†ตํ•ด map์˜ ๋ชจ๋“  ํ‚ค๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ ์˜์ƒ ์ข…๋ฅ˜๋ณ„๋กœ ๊ฐ€๋Šฅํ•œ ์กฐํ•ฉ์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

๊ฐ ์˜์ƒ ์ข…๋ฅ˜๋ณ„๋กœ ๊ฐ€๋Šฅํ•œ ์กฐํ•ฉ์˜ ์ˆ˜๋Š” ํ•ด๋‹น ์ข…๋ฅ˜์˜ ์˜์ƒ์„ ์ž…์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ฅผ ํฌํ•จํ•˜์—ฌ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ ์˜์ƒ ์ข…๋ฅ˜๋ณ„ ์˜์ƒ ์ˆ˜์— 1์„ ๋”ํ•˜๊ณ , ๊ฒฐ๊ณผ๊ฐ’์— ๊ณฑํ•ด์ค๋‹ˆ๋‹ค.

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