๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“– Problem Solution/Programmers

2018 KAKAO BLIND RECRUITMENT [3์ฐจ] n์ง„์ˆ˜ ๊ฒŒ์ž„ Swift

by Fomagran ๐Ÿ’ป 2020. 11. 2.
728x90
๋ฐ˜์‘ํ˜•

Problem


 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - [3์ฐจ] n์ง„์ˆ˜ ๊ฒŒ์ž„

N์ง„์ˆ˜ ๊ฒŒ์ž„ ํŠœ๋ธŒ๊ฐ€ ํ™œ๋™ํ•˜๋Š” ์ฝ”๋”ฉ ๋™์•„๋ฆฌ์—์„œ๋Š” ์ „ํ†ต์ ์œผ๋กœ ํ•ด์˜ค๋Š” ๊ฒŒ์ž„์ด ์žˆ๋‹ค. ์ด ๊ฒŒ์ž„์€ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๋‘ฅ๊ธ€๊ฒŒ ์•‰์•„์„œ ์ˆซ์ž๋ฅผ ํ•˜๋‚˜์”ฉ ์ฐจ๋ก€๋Œ€๋กœ ๋งํ•˜๋Š” ๊ฒŒ์ž„์ธ๋ฐ, ๊ทœ์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ์ˆซ์ž๋ฅผ 0

programmers.co.kr

Solution


์šฐ์„  ์ˆซ์ž๋ฅผ n์ง„์ˆ˜๋กœ ๋ฐ”๊พผ String์„ ๋‹ด์„ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. -> var array = [String]()

 

๊ทธ ๋‹ค์Œ ๋ฏธ๋ฆฌ ์ถœ๋ ฅํ•  ์ˆซ์ž๋“ค์„ ๋‹ด์„ ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. - > var answer = [String]()

 

์ฐจ๋ก€๋Œ€๋กœ ์ˆซ์ž๋ฅผ ๊ธฐ์–ตํ•  ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. - > var i = 0

 

๋ช‡๋ฒˆ์งธ ์ฐจ๋ก€์ธ์ง€ ๊ธฐ๋กํ•  ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.(index๊ฐ€ 0๋ถ€ํ„ฐ ์‹œ์ž‘์ด๋ฏ€๋กœ ์ดˆ๊ธฐ๊ฐ’์„ ์ž์‹ ์˜ ์ˆœ์„œ์—์„œ -1 ํ•ด์ค๋‹ˆ๋‹ค.) -> var j = p-1

 

๋ฏธ๋ฆฌ ์ˆซ์ž๋ฅผ ์ถœ๋ ฅํ•  ์ˆซ์ž๊ฐ€ t๋งŒํผ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— answer์˜ ๊ธธ์ด๊ฐ€ t๋ณด๋‹ค ์ž‘์€ ๊ฒƒ์„ ์กฐ๊ฑด์œผ๋กœ while๋ฌธ์„ ์‹คํ–‰ํ•ด์ค๋‹ˆ๋‹ค. 

-> while answer.count < t {

array์•ˆ์˜ ๊ธธ์ด๊ฐ€ ์ˆœ์„œ๋ณด๋‹ค ์ž‘์œผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐ๊ฑด์„ j+1๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€๊ฒƒ์œผ๋กœ ๋‘ก๋‹ˆ๋‹ค.

-> if array.count >= j+1 {

 

์กฐ๊ฑด์— ๋งž๋‹ค๋ฉด ๋ฏธ๋ฆฌ ์ถœ๋ ฅํ• ์ˆซ์ž ์ฆ‰, array์•ˆ์˜ ํ˜„์žฌ ํ„ด์˜ ์ž์‹ ์˜ ์ˆœ์„œ์ฐจ๋ก€์˜ ์ˆซ์ž๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.

 

answer.append(array[j])

 

ํ•œ ํ„ด์ด ์‚ฌ๋žŒ ์ˆ˜๋งŒํผ ๋Š˜์–ด๋‚˜๋ฏ€๋กœ j์— m์„ ๋”ํ•ด์ค๋‹ˆ๋‹ค. -> += m

 

์•„๋‹ˆ๋ผ๋ฉด ๋ฐฐ์—ด์•ˆ์— ์ˆซ์ž๋ฅผ n์ง„์ˆ˜๋กœ ๋ฐ”๊พผ String์„ map์œผ๋กœ ์ž๋ฆฟ์ˆ˜๋งŒํผ ๋‚˜๋ˆˆ๊ฒƒ์„ contentsOf:๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐ ์ž๋ฆฟ์ˆ˜์˜ ์ˆซ์ž๋ฅผ ๋„ฃ์–ด์ค๋‹ˆ๋‹ค.

-> else{array.append(contentsOf:String(i, radix: n).map{String($0.uppercased())})

 

๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ์ˆซ์ž๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ +1์„ ํ•ด์ค๋‹ˆ๋‹ค. ->  += 1

 

๋งˆ์ง€๋ง‰์œผ๋กœ answer์˜ ๊ธธ์ด๊ฐ€ t๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ๊ธธ์–ด์กŒ๋‹ค๋ฉด while๋ฌธ์„ ํƒˆ์ถœํ•˜๊ณ  answer๋ฅผ joined()๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด ๋ถ™์—ฌ์ค€ ๋’ค ๋ฐ˜ํ™˜ํ•ด์ค๋‹ˆ๋‹ค.

-> return answer.joined()

 

Source Code


 

 

 

 

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€