Source Code
func solution(_ n:Int) -> [Int] { | |
//n์ ๊ฐฏ์๋งํผ 2์ฐจ์๋ฐฐ์ด์ ๋ง๋ค์ด์ค | |
var answerArray = Array(repeating: [Int](), count: n) | |
//๊ฐ์ฅ ๋ ์ซ์๋ฅผ ๋ด์ ๋ณ์ | |
var endNumber = Int() | |
//์์ํ ๋์ ํ์ ์ ํด์ค ํ | |
var start = 0 | |
//๋ฐ์์ ์๋๋ก ์ฌ๋ผ๊ฐ ๋ ๋๋๋ ํ | |
var end = 1 | |
//๊ฐ์ฅ ๋ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ์ ํด์ค ๋ณ์ | |
var floor = n - 1 | |
//๋ช ๋ฒ์งธ ๋ฐ๋ณต๋๋์ง๋ฅผ ์ ํ ๋ณ์ | |
var rep = 0 | |
//์ซ์๋ฅผ ์ ์ฅํ ๋ณ์ | |
var x = 1 | |
//์ด์ฐจ์๋ฐฐ์ด์ ๊ฐ index์ ๋ง๊ฒ ํฌ๊ธฐ๋ฅผ ์ ํด์ค | |
for i in 1...n{ | |
answerArray[i-1] = Array(repeating: Int(), count: i) | |
} | |
//1๋ถํฐ n๊น์ง ๋ํด์ ๊ฐ์ฅ ๋๊ฐ์ ์ ํด์ค | |
for i in 1...n { | |
endNumber += i | |
} | |
while true { | |
//์์์ ์๋๋ก ๋ด๋ ค๊ฐ ๋ | |
for i in start...floor { | |
answerArray[i][rep] = x | |
if x != endNumber { | |
x += 1 | |
}else { | |
return makeArray(answerArray: answerArray) | |
} | |
} | |
//๊ฐ์ฅ ๋ ๋ฐฐ์ด์ ์ฑ์์ค ๋ | |
for i in rep+1...floor-rep { | |
answerArray[floor][i] = x | |
if x != endNumber { | |
x += 1 | |
}else { | |
return makeArray(answerArray: answerArray) | |
} | |
} | |
//๋ฐ์์ ์๋ก ์ฌ๋ผ๊ฐ ๋ | |
for i in stride(from: floor-1, to: end-1, by: -1) { | |
answerArray[i][i-rep] = x | |
if x != endNumber { | |
x += 1 | |
}else { | |
return makeArray(answerArray: answerArray) | |
} | |
} | |
//์ด์ ํ๋ฒ ๋ฐ๋ณต๋์์ผ๋ฏ๋ก 1์ ๋ํด์ค | |
rep += 1 | |
//์์ํ๋ ํ์ 2๋ฅผ ๋ํด์ค | |
start += 2 | |
//๋๋๋ ํ์ 2๋ฅผ ๋ํด์ค | |
end += 2 | |
//๊ฐ์ฅ ๋ ์ซ์๋ฅผ 1 ๋นผ์ค | |
floor -= 1 | |
} | |
return makeArray(answerArray: answerArray) | |
} | |
//2์ฐจ์๋ฐฐ์ด์ ์๋ ์ซ์๋ค์ ์ฐจ๋ก๋ก ๋ฐฐ์ด์์ ๋ฃ์ด์ฃผ๋ ํจ์ | |
func makeArray(answerArray:[[Int]]) -> [Int]{ | |
var answer = [Int]() | |
for array in answerArray { | |
answer.append(contentsOf: array) | |
} | |
return answer | |
} | |
solution(6) |
Solution
์ด๋ฒ ๋ฌธ์ ๋ ์๋ ์ฌ์ง๊ณผ ๊ฐ์ด 1 -> 2 -> 3์ด ๋ฐ๋ณต๋ฉ๋๋ค.
์ธ์ ๊น์ง ๋ฐ๋ณต๋๋๋? 1๋ถํฐ n๊น์ง ๋ํ๊ฐ์ด ๋์ฌ๋๊น์ง

์ฐ์ ๊ฐ์ฅ ๋จผ์ ํด์ค์ผ ํ ๊ฑด 2์ฐจ์ ๋ฐฐ์ด์ ๊ฐ ํ์ ํฌ๊ธฐ๋งํผ ๋ง๋ค์ด์ค์ผ ํฉ๋๋ค.
๋ฌด์จ ๋ป์ด๋๋ฉด n์ด 3์ด๋ผ๋ฉด [[0],[0,0],[0,0,0]]์ผ๋ก ๋ง๋ค์ด์ค์ผ ํ๋ค๋ ๋ป์ด์ง์.
๋ฐฐ์ด ๋งจ ์ฒซ๋ฒ์งธ์ ์ซ์๋ฅผ ์ฐจ๋ก๋๋ก ๋ฃ์ด์ค๋๋ค.
๊ทธ๋ฌ๋ค๊ฐ ๊ฐ์ฅ ๋ ๋ฐฐ์ด์ ์๋ค๋ฉด ๊ทธ ๋ฐฐ์ด์ ํฌ๊ธฐ๋งํผ ์ซ์๋ฅผ ๋ ์ฐจ๋ก๋๋ก ๋ฃ์ด์ค๋๋ค.
๊ทธ๋ฆฌ๊ณค ๊ฐ์ฅ ๋ ๋ฐฐ์ด์ ๊ฐ์ฅ ๋ ์ธ๋ฑ์ค์ ์๋ค๋ฉด ๋ค์ ๊ฑฐ๊พธ๋ก ๊ฐ์ฅ ๋ ์ธ๋ฑ์ค์ ์ฐจ๋ก๋๋ก ์ซ์๋ฅผ ๋ฃ์ด์ค๋๋ค.
๊ทธ ๋ค์ ํ๋ฒ ์ผ๊ฐํ์ ๋ง๋ค์ด์ฃผ์๋ค๋ฉด ๊ทธ ๋ค์ ์ผ๊ฐํ์ผ๋ก ์ด๋ํด์ผํ ํ ๋ฐ์.
์ฌ๊ธฐ์ ๊ท์น์ด ์์ต๋๋ค. ์์ํ๋ ํ๊ณผ ๋๋๋ ํ์ 2๋ฐฐ๋ก ๋ฐ๋ณต๋ฉ๋๋ค. ์ด ๋ง์ด ๋ฌด์จ ๋ง์ด๋๋ฉด
์๋ ์ฌ์ง๊ณผ ๊ฐ์ด ๋งจ ์ฒ์ ์ผ๊ฐํ์ด 1๋ฒ์งธ ํ์์ ์์ํ๋ค๋ฉด ๋๋ฒ์งธ ์ผ๊ฐํ์ ์์ ํ์ 3์ด ๋๋ค๋ ๋ง์ด๊ณ
๋งจ ์ฒ์ ์ผ๊ฐํ์ด ๋๋๋ ํ์ด 2๋ฒ์งธ ํ์ด์๋ค๋ฉด ๊ทธ ๋ค์ ์ผ๊ฐํ์ ๋๋๋ ํ์ 4๊ฐ ๋๋ค๋ ๋ง์ ๋๋ค.

์ด๊ฒ์ ์ด์ฉํด์ ์ซ์๋ฅผ ์ฐจ๋ก๋๋ก ๋๋ ค๊ฐ๋ฉด ์ ๋ต์ ์ฐพ์ผ์ค ์ ์์๊ฒ๋๋ค.
์์ธํ ๊ฑด ์์ ์์ค์ฝ๋๋ฅผ ์ฐธ์กฐํด์ฃผ์ธ์!
Problem
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ผ๊ฐ ๋ฌํฝ์ด
5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11]
programmers.co.kr
๋๋์ด ํ๋ก๊ทธ๋๋จธ์ค์ ์๋ 2๋จ๊ณ ๋ฌธ์ ๋ฅผ ๋ค ํ์๋ค...ใ ใ
์ด๋ฒ๋ ๋ ๋ชฉํ์๋๋ฐ ๊ฒจ์ฐ 12์์ ๋๋ด๊ฒ ๋์๋ค..ใ
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค SQL (0) | 2020.12.06 |
---|---|
2019 KAKAO BLIND RECRUITMENT ํ๋ณดํค Swift (0) | 2020.12.04 |
2018 KAKAO BLIND RECRUITMENT[3์ฐจ] ๋ฐฉ๊ธ๊ทธ๊ณก Swift (0) | 2020.11.29 |
2018 KAKAO BLIND RECRUITMENT [3์ฐจ] ํ์ผ๋ช ์ ๋ ฌ Swift (0) | 2020.11.19 |
2018 KAKAO BLIND RECRUITMENT [3์ฐจ] ์์ถ Swift (0) | 2020.11.16 |
๋๊ธ