๋ฌธ์ ์ค๋ช
์ํ ์ง์ ์ ํ N๋๋ฅผ ์ธ์ ์ต๋๋ค. ๋ชจ๋ ํ์ ๊ผญ๋๊ธฐ์๋ ์ ํธ๋ฅผ ์ก/์์ ํ๋ ์ฅ์น๋ฅผ ์ค์นํ์ต๋๋ค. ๋ฐ์ฌํ ์ ํธ๋ ์ ํธ๋ฅผ ๋ณด๋ธ ํ๋ณด๋ค ๋์ ํ์์๋ง ์์ ํฉ๋๋ค. ๋ํ, ํ ๋ฒ ์์ ๋ ์ ํธ๋ ๋ค๋ฅธ ํ์ผ๋ก ์ก์ ๋์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋์ด๊ฐ 6, 9, 5, 7, 4์ธ ๋ค์ฏ ํ์ด ์ผ์ชฝ์ผ๋ก ๋์์ ๋ ์ด์ ์ ํธ๋ฅผ ๋ฐ์ฌํฉ๋๋ค. ๊ทธ๋ฌ๋ฉด, ํ์ ๋ค์๊ณผ ๊ฐ์ด ์ ํธ๋ฅผ ์ฃผ๊ณ ๋ฐ์ต๋๋ค. ๋์ด๊ฐ 4์ธ ๋ค์ฏ ๋ฒ์งธ ํ์์ ๋ฐ์ฌํ ์ ํธ๋ ๋์ด๊ฐ 7์ธ ๋ค ๋ฒ์งธ ํ์ด ์์ ํ๊ณ , ๋์ด๊ฐ 7์ธ ๋ค ๋ฒ์งธ ํ์ ์ ํธ๋ ๋์ด๊ฐ 9์ธ ๋ ๋ฒ์งธ ํ์ด, ๋์ด๊ฐ 5์ธ ์ธ ๋ฒ์งธ ํ์ ์ ํธ๋ ๋์ด๊ฐ 9์ธ ๋ ๋ฒ์งธ ํ์ด ์์ ํฉ๋๋ค. ๋์ด๊ฐ 9์ธ ๋ ๋ฒ์งธ ํ๊ณผ ๋์ด๊ฐ 6์ธ ์ฒซ ๋ฒ์งธ ํ์ด ๋ณด๋ธ ๋ ์ด์ ์ ํธ๋ ์ด๋ค ํ์์๋ ์์ ํ ์ ์์ต๋๋ค.
์ก์ ํ(๋์ด)์์ ํ(๋์ด)
5(4) | 4(7) |
4(7) | 2(9) |
3(5) | 2(9) |
2(9) | - |
1(6) | - |
๋งจ ์ผ์ชฝ๋ถํฐ ์์๋๋ก ํ์ ๋์ด๋ฅผ ๋ด์ ๋ฐฐ์ด heights๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋ ๊ฐ ํ์ด ์ ์ ํธ๋ฅผ ์ด๋ ํ์์ ๋ฐ์๋์ง ๊ธฐ๋กํ ๋ฐฐ์ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- heights๋ ๊ธธ์ด 2 ์ด์ 100 ์ดํ์ธ ์ ์ ๋ฐฐ์ด์ ๋๋ค.
- ๋ชจ๋ ํ์ ๋์ด๋ 1 ์ด์ 100 ์ดํ์ ๋๋ค.
- ์ ํธ๋ฅผ ์์ ํ๋ ํ์ด ์์ผ๋ฉด 0์ผ๋ก ํ์ํฉ๋๋ค.
์ ์ถ๋ ฅ ์
heights | return |
[3,9,9,3,5,7,2] | [0,0,0,3,3,3,6] |
[1,5,3,6,7,6,5] | [0,0,2,0,0,5,6] |
[6,9,5,7,4] | [0,0,2,2,4] |
ํ์ด:height์ ์ค๋ฅธ์ชฝ๋ถํฐ ์ผ์ชฝ์ผ๋ก ์ฐจ๋ก๋๋ก ๊ฐ์ผํ๊ธฐ ๋๋ฌธ์ index๋ฅผ ์ญ์์ผ๋ก ๋๋ ค์ผํ๋ค.
for in stirde๋ฌธ์ผ๋ก heights์ ๊ธธ์ด์ -1๋ถํฐ -1๊น์ง ๋๋ ธ๋๋ฐ 0์ด ๋ค์ด๊ฐ์ผํ๊ธฐ ๋๋ฌธ์ -1๊น์ง ๋๋ ธ๋ค.
๊ทธ๋ฆฌ๊ณ for๋ฌธ์ ํ ๊ฐ ๋์จ์ j๋ฅผ i๋ถํฐ -1๊น์ง ๋๋ฆฌ๋๋ฐ heights[j]๊ฐ heights[i]๋ณด๋ค ํฌ๋ค๋ฉด ๋ฐ๋ก answer๋ฐฐ์ด์ ์ถ๊ฐํ๊ณ
๋ฐ๊นฅ ํฌ๋ฌธ์ ๋ฐ๋ก ๋ค์๊ฑฐ๋ฅผ ํ๋๋ก continue outer๋ฅผ ์จ์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก ๋ฐฐ์ด์ด ์ฐจ๋ก๋๋ก ์ถ๊ฐ๋๋ฏ๋ก answer๋ฅผ ์ญ์์ผ๋ก ๋ํ๋ด๊ฒ reversed๋ฅผ ์จ์ฃผ์๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
import Foundation
func solution(_ heights:[Int]) -> [Int] {
var answer = [Int]()
for j in stride(from: i, to: -1, by: -1){
if heights[i] < heights[j]{
continue outer
}
}
}
return answer.reversed()
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
๋ค๋ฅธ์ฌ๋ ํ์ด ์ค ๊ฐ์ฅ ์ข๋ค๊ณ ์๊ฐํ๋ ๊ฒ
for๋ฌธ์ ์ญ์์ผ๋ก ๋๋ฆฌ๋ ค๋ฉด reversed๋ฅผ ์ ๋ ๊ฒ ์ฐ๋ฉด ๋จ.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import Foundation
func solution(_ heights:[Int]) -> [Int] {
for i in (1..<size).reversed() {
for j in (0..<i).reversed() {
if heights[i] < heights[j] {
answer[i] = j + 1
break
}
}
}
return answer
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ๊ธฐ๋ฅ๊ฐ๋ฐ Swift (0) | 2020.03.23 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ๋ฉ์ฉกํ ์ฌ๊ฐํ Swift (0) | 2020.03.21 |
ํ๋ก๊ทธ๋๋จธ์ค ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ Swift (0) | 2020.03.19 |
ํ๋ก๊ทธ๋๋จธ์ค ํ๋ฆฐํฐ Swift (0) | 2020.03.11 |
2018 KAKAO BLIND RECRUITMENT [1์ฐจ] ๋คํธ๊ฒ์ (0) | 2020.03.06 |
๋๊ธ