๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด(Java)

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_ํ‘ธ๋“œ ํŒŒ์ดํŠธ ๋Œ€ํšŒ

by carrot0911 2024. 12. 10.

๋ฌธ์ œ ์„ค๋ช…

https://school.programmers.co.kr/learn/courses/30/lessons/134240

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

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

์ด๋•Œ, ๋Œ€ํšŒ์˜ ๊ณต์ •์„ฑ์„ ์œ„ํ•ด ๋‘ ์„ ์ˆ˜๊ฐ€ ๋จน๋Š” ์Œ์‹์˜ ์ข…๋ฅ˜์™€ ์–‘์ด ๊ฐ™์•„์•ผ ํ•˜๋ฉฐ, ์Œ์‹์„ ๋จน๋Š” ์ˆœ์„œ๋„ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ด๋ฒˆ ๋Œ€ํšŒ๋ถ€ํ„ฐ๋Š” ์นผ๋กœ๋ฆฌ๊ฐ€ ๋‚ฎ์€ ์Œ์‹์„ ๋จผ์ € ๋จน์„ ์ˆ˜ ์žˆ๊ฒŒ ๋ฐฐ์น˜ํ•˜์—ฌ ์„ ์ˆ˜๋“ค์ด ์Œ์‹์„ ๋” ์ž˜ ๋จน์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๋Œ€ํšŒ๋ฅผ ์œ„ํ•ด ์ˆ˜์›…์ด๋Š” ์Œ์‹์„ ์ฃผ๋ฌธํ–ˆ๋Š”๋ฐ, ๋Œ€ํšŒ์˜ ์กฐ๊ฑด์„ ๊ณ ๋ คํ•˜์ง€ ์•Š๊ณ  ์Œ์‹์„ ์ฃผ๋ฌธํ•˜์—ฌ ๋ช‡ ๊ฐœ์˜ ์Œ์‹์€ ๋Œ€ํšŒ์— ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, 3๊ฐ€์ง€์˜ ์Œ์‹์ด ์ค€๋น„๋˜์–ด ์žˆ์œผ๋ฉฐ, ์นผ๋กœ๋ฆฌ๊ฐ€ ์ ์€ ์ˆœ์„œ๋Œ€๋กœ 1๋ฒˆ ์Œ์‹์„ 3๊ฐœ, 2๋ฒˆ ์Œ์‹์„ 4๊ฐœ, 3๋ฒˆ ์Œ์‹์„ 6๊ฐœ ์ค€๋น„ํ–ˆ์œผ๋ฉฐ, ๋ฌผ์„ ํŽธ์˜์ƒ 0๋ฒˆ ์Œ์‹์ด๋ผ๊ณ  ์นญํ•œ๋‹ค๋ฉด, ๋‘ ์„ ์ˆ˜๋Š” 1๋ฒˆ ์Œ์‹ 1๊ฐœ, 2๋ฒˆ ์Œ์‹ 2๊ฐœ, 3๋ฒˆ ์Œ์‹ 3๊ฐœ์”ฉ์„ ๋จน๊ฒŒ ๋˜๋ฏ€๋กœ ์Œ์‹์˜ ๋ฐฐ์น˜๋Š” "1223330333221"์ด ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1๋ฒˆ ์Œ์‹ 1๊ฐœ๋Š” ๋Œ€ํšŒ์— ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

์ˆ˜์›…์ด๊ฐ€ ์ค€๋น„ํ•œ ์Œ์‹์˜ ์–‘์„ ์นผ๋กœ๋ฆฌ๊ฐ€ ์ ์€ ์ˆœ์„œ๋Œ€๋กœ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ ๋ฐฐ์—ด food๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋Œ€ํšŒ๋ฅผ ์œ„ํ•œ ์Œ์‹์˜ ๋ฐฐ์น˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด์„ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • 2 ≤ food์˜ ๊ธธ์ด ≤ 9
  • 1 ≤ food์˜ ๊ฐ ์›์†Œ ≤ 1,000
  • food์—๋Š” ์นผ๋กœ๋ฆฌ๊ฐ€ ์ ์€ ์ˆœ์„œ๋Œ€๋กœ ์Œ์‹์˜ ์–‘์ด ๋‹ด๊ฒจ ์žˆ์Šต๋‹ˆ๋‹ค.
  • food[i]๋Š” i๋ฒˆ ์Œ์‹์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • food[0]์€ ์ˆ˜์›…์ด๊ฐ€ ์ค€๋น„ํ•œ ๋ฌผ์˜ ์–‘์ด๋ฉฐ, ํ•ญ์ƒ 1์ž…๋‹ˆ๋‹ค.
  • ์ •๋‹ต์˜ ๊ธธ์ด๊ฐ€ 3์ด์ƒ์ธ ๊ฒฝ์šฐ๋งŒ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

food result
[1, 3, 4, 6] "1223330333221"
[1, 7, 1, 2] "111303111"

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

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ๋ฌธ์ œ ์˜ˆ์‹œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ๋‘ ์„ ์ˆ˜๋Š” 1๋ฒˆ ์Œ์‹ 3๊ฐœ, 3๋ฒˆ ์Œ์‹ 1๊ฐœ๋ฅผ ๋จน๊ฒŒ ๋˜๋ฏ€๋กœ ์Œ์‹์˜ ๋ฐฐ์น˜๋Š” "111303111"์ž…๋‹ˆ๋‹ค.

 

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

class Solution {
    public String solution(int[] food) {
        String answer = "";
        
        for (int i = 1; i < food.length; i++) {
            for (int j = 0; j < food[i]/2; j++) {
                answer += Integer.toString(i);
            }
        }
        
        String str = "";
        
        for (int i = answer.length()-1; i >= 0; i--) {
            str += answer.charAt(i);
        }
        
        return answer + "0" + str;
    }
}

์ฝ”๋“œ ์„ค๋ช…

  • String answer = "" : ์Œ์‹ ๊ฐœ์ˆ˜๋กœ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•  ๋นˆ ๋ฌธ์ž์—ด answer๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
  • for (int i = 1; i < food.length; i++) { } : for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ i๊ฐ€ 1๋ถ€ํ„ฐ food ๋ฐฐ์—ด์˜ ๋๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
    • for (int j = 0; j < food[i]/2; j++) { } : for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ j๊ฐ€ 0๋ถ€ํ„ฐ food[i]๋ฅผ 2๋กœ ๋‚˜๋ˆˆ ๋ชซ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
      • answer += Integer.toString(i) : ๋ฌธ์ž์—ด answer์— ํ˜„์žฌ ์ธ๋ฑ์Šค i๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ถ”๊ฐ€ํ•œ๋‹ค.
  • String str = "" : answer๋ฅผ ๋’ค์ง‘์€ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•  ๋นˆ ๋ฌธ์ž์—ด str๋ฅผ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
  • for (int i = answer.length; i >= 0; i--) { } : for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ answer์˜ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๋ถ€ํ„ฐ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
    • str += answer.charAt(i) : ๋ฌธ์ž์—ด str์— answer์˜ i๋ฒˆ์งธ ๋ฌธ์ž๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค.