๋ฅ๋
[ํ๋ก๊ทธ๋๋จธ์ค] Lv 1. ์คํจ์จ ( js, python) ๋ณธ๋ฌธ
๐ ๋ฌธ์ ๐
2019 KAKAO BLIND RECRUITMENT - ์คํจ์จ
์ ๋ ฅ๊ฐ
N : ์ ์ฒด ์คํ ์ด์ง์ ์ ex) 5
stages : ๊ฒ์ ์ด์ฉ์๊ฐ ํ์ฌ ๋ฉ์ถฐ์๋ ์คํ ์ด์ง์ ๋ฒํธ๋ค์ ๋ฐฐ์ด ex) [2,1,2,6,2,4,3,3]
์คํจ์จ : ์คํ ์ด์ง ๋๋ฌํ์ผ๋ ์์ง ํด๋ฆฌ์ด ๋ชปํ ํ๋ ์ด์ด ์ / ์คํ ์ด์ง์ ๋๋ฌํ ํ๋ ์ด์ด ์
์ถ๋ ฅ๊ฐ
: ๊ฐ ์คํ ์ด์ง์ ์คํจ์จ์ด ํฐ ์์๋๋ก ์คํ ์ด์ง ๋ฒํธ๋ฅผ ๋ฐฐ์ด ํํ๋ก ์ถ๋ ฅํ๋ผ ex)[3,4,2,1,5]
๐พํด๊ฒฐ๊ณผ์ ๐พ
1. for๋ฌธ์ 1๋ถํฐ N๊น์ง ๋๋ฆฌ๋ฉด์ ์ธ๋ฑ์ค๋ฅผ ์คํ ์ด์ง ๋ฒํธ๋ก ์ด์ฉํด์ผ๊ฒ ๋ค.
2. ์คํจ์จ์ ๊ตฌํ๋ ๋ถ๋ชจ์ ๋ถ์๋ฅผ ๋๊ณ 1~N๊น์ง์ ์คํจ์จ์ ๊ตฌํ๊ธฐ ์ํด ์ด์ค for๋ฌธ
- ๋ถ๋ชจ : ์คํ ์ด์ง ๋ฒํธ๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ์, ๋ถ์ : ํด๋น ์ซ์
3. ์คํจ์จ์ ๋ฐ๋ฅธ ์ธ๋ฑ์ค ๋ฒํธ๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ์ธ๋ฑ์ค ๋ฒํธ๋ง ๋์ค๊ฒ ์ถ๋ ฅํด์ผ๊ฒ ๋ค.
โจ์ต์ข ์ฝ๋โจ
function solution(N, stages) {
var answer = [];
for( i = 1; i <= N; i++){
var a = 0; //๋ถ๋ชจ: ์คํ
์ด์ง์ ๋๋ฌํ ์
var b = 0; //๋ถ์: ๋๋ฌํ์ง๋ง ํด๋ฆฌ์ด ๋ชปํ ์ซ์ == ํด๋น ์ซ์
for( j = 0; j < stages.length; j++){
if(stages[j] >= i){
a++;
}
if(stages[j] == i){
b++;
}
}
answer.push([i, b/a]);
answer.sort((a,b) => b[1] - a[1]);
var result = answer.map((num) => num[0]);
}
return result;
}
+ํ์ด์ฌ
+๋ ํจ์จ์ ์ผ๋ก
python3
def solution(N, stages):
answer = []
for i in range(1, N+1):
a,b = 0,0
for j in stages:
if i <= j:
b += 1
if i == j:
a += 1
answer.append((i,a/b))
answer.sort(key = lambda x:-x[1])
return [x[0] for x in answer]
์ด๋ ๊ฒ ํ๋๊น ์๊ฐ์ด๊ณผ๊ฐ ๋ ์ ์ด์ค for๋ฌธ ๋ง๊ณ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ํด์ผ ํ๋ค.
def solution(N, stages):
answer = []
b = len(stages) # ๋ถ๋ชจ
for i in range(1, N+1):
if b != 0:
a = stages.count(i) #๋ถ์
answer.append((i , a/b))
b -= a
else:
answer.append((i, 0))
answer.sort(key = lambda x:-x[1])
return [x[0] for x in answer]
์ด๋ ๊ฒ ํ๋ฉด ํต๊ณผ๋๋ค!
'์ฝํ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ - (2) ์ ๋ ฌ, ์ด์ง ํ์ (0) | 2025.01.23 |
---|---|
ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ - (1) ๊ทธ๋ฆฌ๋, ๊ตฌํ, DFS, BFS (0) | 2025.01.21 |
ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ - (0) (0) | 2025.01.20 |
[ํ๋ก๊ทธ๋๋จธ์ค] Lv 1. ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌํ๊ธฐ (0) | 2024.11.16 |
[ํ๋ก๊ทธ๋๋จธ์ค] Lv1. ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ (0) | 2024.11.15 |