๋ฌธ์ ์ค๋ช
์ผ๋ฐ์ ์ธ ํ๋ฆฐํฐ๋ ์ธ์ ์์ฒญ์ด ๋ค์ด์จ ์์๋๋ก ์ธ์ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ค์ํ ๋ฌธ์๊ฐ ๋์ค์ ์ธ์๋ ์ ์์ต๋๋ค. ์ด๋ฐ ๋ฌธ์ ๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ์ค์๋๊ฐ ๋์ ๋ฌธ์๋ฅผ ๋จผ์ ์ธ์ํ๋ ํ๋ฆฐํฐ๋ฅผ ๊ฐ๋ฐํ์ต๋๋ค. ์ด ์๋กญ๊ฒ ๊ฐ๋ฐํ ํ๋ฆฐํฐ๋ ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ธ์ ์์ ์ ์ํํฉ๋๋ค.
1. ์ธ์ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ์์ ์๋ ๋ฌธ์(J)๋ฅผ ๋๊ธฐ๋ชฉ๋ก์์ ๊บผ๋ ๋๋ค. 2. ๋๋จธ์ง ์ธ์ ๋๊ธฐ๋ชฉ๋ก์์ J๋ณด๋ค ์ค์๋๊ฐ ๋์ ๋ฌธ์๊ฐ ํ ๊ฐ๋ผ๋ ์กด์ฌํ๋ฉด J๋ฅผ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ฃ์ต๋๋ค. 3. ๊ทธ๋ ์ง ์์ผ๋ฉด J๋ฅผ ์ธ์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, 4๊ฐ์ ๋ฌธ์(A, B, C, D)๊ฐ ์์๋๋ก ์ธ์ ๋๊ธฐ๋ชฉ๋ก์ ์๊ณ ์ค์๋๊ฐ 2 1 3 2 ๋ผ๋ฉด C D A B ์์ผ๋ก ์ธ์ํ๊ฒ ๋ฉ๋๋ค.
๋ด๊ฐ ์ธ์๋ฅผ ์์ฒญํ ๋ฌธ์๊ฐ ๋ช ๋ฒ์งธ๋ก ์ธ์๋๋์ง ์๊ณ ์ถ์ต๋๋ค. ์์ ์์์ C๋ 1๋ฒ์งธ๋ก, A๋ 3๋ฒ์งธ๋ก ์ธ์๋ฉ๋๋ค.
ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์ ์๋ ๋ฌธ์์ ์ค์๋๊ฐ ์์๋๋ก ๋ด๊ธด ๋ฐฐ์ด priorities์ ๋ด๊ฐ ์ธ์๋ฅผ ์์ฒญํ ๋ฌธ์๊ฐ ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์ ์ด๋ค ์์น์ ์๋์ง๋ฅผ ์๋ ค์ฃผ๋ location์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ด๊ฐ ์ธ์๋ฅผ ์์ฒญํ ๋ฌธ์๊ฐ ๋ช ๋ฒ์งธ๋ก ์ธ์๋๋์ง return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์๋ 1๊ฐ ์ด์ 100๊ฐ ์ดํ์ ๋ฌธ์๊ฐ ์์ต๋๋ค.
- ์ธ์ ์์ ์ ์ค์๋๋ 1~9๋ก ํํํ๋ฉฐ ์ซ์๊ฐ ํด์๋ก ์ค์ํ๋ค๋ ๋ป์ ๋๋ค.
- location์ 0 ์ด์ (ํ์ฌ ๋๊ธฐ๋ชฉ๋ก์ ์๋ ์์ ์ - 1) ์ดํ์ ๊ฐ์ ๊ฐ์ง๋ฉฐ ๋๊ธฐ๋ชฉ๋ก์ ๊ฐ์ฅ ์์ ์์ผ๋ฉด 0, ๋ ๋ฒ์งธ์ ์์ผ๋ฉด 1๋ก ํํํฉ๋๋ค.
์ ์ถ๋ ฅ ์
prioritie | location | return |
[2, 1, 3, 2] | 2 | 1 |
[1, 1, 9, 1, 1, 1] | 0 | 5 |
ํ์ด:์ฐ์ answervalue์ answerkey๋ฅผ ๋ง๋ค์ด์ priorities์์ location์ ํด๋น๋๋ ๊ฐ๊ณผ ๋ช ๋ฒ์งธ์ธ์ง ์์๋ธ๋ค.
๊ทธ๋ฆฌ๊ณ sort๋ผ๋ ๋ณ์๋ฅผ ๋ง๋ค๊ณ priorites๋ฅผ sortํด์ ์ญ์์ผ๋ก ์ ๋ ฌ์ ํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ while๋ฐ๋ณต๋ฌธ์ ๋๋ ค
๋ง์ฝ answerkey๊ฐ 0์ด ๋์๋ค๋ฉด ๋งจ ๋ค๋ก ๋ณด๋ด์ผํ๊ธฐ ๋๋ฌธ์ answervalue๋ฅผ ์ถ๊ฐํด์ฃผ๊ณ 0๋ฒ์งธ๋ฅผ ์ญ์ ํด์ค ๋ค answerkey์ priorities์ ๋งจ ๋ท๊ฐ์ ๋ํด์ค๋ค. ๊ทธ๋ฆฌ๊ณ continue๋ฅผ ์ด์ฉํด ์๋ ์กฐ๊ฑด์ ์ํ๊ณ ๋ค์์ผ๋ก ๋์ด๊ฐ๊ฒ ํ๋ค.
๋จ์ฝ sort[0] ์ฆ, ๊ฐ์ฅ ํฐ ๊ฐ์ด priorities์ ๊ฐ์ฅ ์ฒซ ๋ฒ์งธ ๊ฐ์ด๋ผ๋ฉด ์ญ์ ํ๊ณ count๋ฅผ 1์ ๋ํด์ค๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐฐ์ด์์ ํ ๊ฐ๊ฐ ์ฌ๋ผ์ก์ผ๋ฏ๋ก answerkey๋ ๋น์ฐํ -1๋งํผ ์์ผ๋ก ์ค๊ฒ ๋๋ค.
๊ฐ์ฅ ํฐ ๊ฐ์ด ์๋๋ผ๋ฉด ๊ทธ ๊ฐ์ ๋งจ ๋ค๋ก ์ด๋ํ๋ฏ๋ก answerkey๋ -1๋งํผ ์ค๊ฒ ํ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ง์ฝ sort์์ ๊ฐ์ฅ ํฐ ๊ฐ์ด answervalue๋ผ๋ฉด ๋ฐ๋ณต๋ฌธ์ ๋์์
answervalue์ ๊ฐ์ ๊ฐ์ด ์๋ค๋ฉด count๋ฅผ 1์ฉ ๋ํด์ฃผ๊ณ answervalue์ answerkey๊ฐ ๋ชจ๋ ๊ฐ์ ๊ฐ์ด ๋ฐ๋ก ์ฒ์์ ์ํ๋ ๊ฐ์ด๋ฏ๋ก ๊ทธ ๊ฐ์ด ๋์ค๋ฉด count์ ๋ง์ง๋ง์ผ๋ก 1์ ๋ํด์ฃผ๊ณ count๋ฅผ ๋ฐํํ๋ฉด ๋ช ๋ฒ์งธ์ธ์ง ๊ตฌํ ์ ์๋ค.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
import Foundation
func solution(_ priorities:[Int], _ location:Int) -> Int {
let answervalue = priorities[location]
var answerkey = location
var priorities1 = priorities
var count = 0
while true {
print(sort[0],answervalue)
if sort[0] == answervalue {
break
}
if answerkey == 0 {
continue
}
if sort[0] == priorities1[0]{
count += 1
answerkey -= 1
}else{
answerkey -= 1
}
}
if i == answerkey && priorities1[i] == answervalue{
count += 1
break
}
if priorities1[i] == answervalue{
count += 1
}
}
return count
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
'๐ Problem Solution > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ํ Swift (0) | 2020.03.19 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ๋ค๋ฆฌ๋ฅผ ์ง๋๋ ํธ๋ญ Swift (0) | 2020.03.19 |
2018 KAKAO BLIND RECRUITMENT [1์ฐจ] ๋คํธ๊ฒ์ (0) | 2020.03.06 |
2019 KAKAO BLIND RECUITMENT ์คํจ์จ Swift (0) | 2020.03.05 |
2018 KAKAO BLIND RECUITMENT 1์ฐจ ๋น๋ฐ์ง๋ Swift (0) | 2020.03.04 |
๋๊ธ