๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โŒจ๏ธ Language/swift

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1] ํ‘ธ๋“œ ํŒŒ์ดํŠธ ๋Œ€ํšŒ

by hyebin (Helia) 2023. 3. 12.
๋ฐ˜์‘ํ˜•
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.1 ๋ชจ์Œ

ํ‘ธ๋“œ ํŒŒ์ดํŠธ ๋Œ€ํšŒ

๋ฌธ์ œ ์„ค๋ช…

์ˆ˜์›…์ด๋Š” ๋งค๋‹ฌ ์ฃผ์–ด์ง„ ์Œ์‹์„ ๋นจ๋ฆฌ ๋จน๋Š” ํ‘ธ๋“œ ํŒŒ์ดํŠธ ๋Œ€ํšŒ๋ฅผ ๊ฐœ์ตœํ•ฉ๋‹ˆ๋‹ค. ์ด ๋Œ€ํšŒ์—์„œ ์„ ์ˆ˜๋“ค์€ 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"์ž…๋‹ˆ๋‹ค.

์ œ์ถœ

import Foundation

func solution(_ food:[Int]) -> String {
    var answer = ""
    
    for i in 1..<food.count{
        if food[i] != 1 {
            answer += String(repeating: String(i), count: Int(exactly: food[i])!/2)
        }
    }
    return answer + "0" + answer.reversed()
}
food ๋ฐฐ์—ด์—์„œ 1๋ฒˆ ์š”์†Œ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ์š”์†Œ๊นŒ์ง€ ๊ฐ’์ด 1์ด ์•„๋‹ˆ๋ผ๋ฉด, answer ๋ณ€์ˆ˜์— ์ธ๋ฑ์Šค๋ฅผ (์š”์†Œ ๊ฐ’/2) ๋งŒํผ ๋ฐ˜๋ณตํ•˜์—ฌ ์ถ”๊ฐ€ํ•œ๋‹ค.
answer ๋ณ€์ˆ˜์— "0"๊ณผ answer ๋ณ€์ˆ˜๋ฅผ ๋’ค์ง‘์–ด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

๋ฐ˜์‘ํ˜•