Jieunny์ ๋ธ๋ก๊ทธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๋ช ์์ ์ ๋น(1) ๋ณธ๋ฌธ
๐ ๋ฌธ์
"๋ช ์์ ์ ๋น"์ด๋ผ๋ TV ํ๋ก๊ทธ๋จ์์๋ ๋งค์ผ 1๋ช ์ ๊ฐ์๊ฐ ๋ ธ๋๋ฅผ ๋ถ๋ฅด๊ณ , ์์ฒญ์๋ค์ ๋ฌธ์ ํฌํ์๋ก ๊ฐ์์๊ฒ ์ ์๋ฅผ ๋ถ์ฌํฉ๋๋ค. ๋งค์ผ ์ถ์ฐํ ๊ฐ์์ ์ ์๊ฐ ์ง๊ธ๊น์ง ์ถ์ฐ ๊ฐ์๋ค์ ์ ์ ์ค ์์ k๋ฒ์งธ ์ด๋ด์ด๋ฉด ํด๋น ๊ฐ์์ ์ ์๋ฅผ ๋ช ์์ ์ ๋น์ด๋ผ๋ ๋ชฉ๋ก์ ์ฌ๋ ค ๊ธฐ๋ ํฉ๋๋ค. ์ฆ ํ๋ก๊ทธ๋จ ์์ ์ดํ ์ด๊ธฐ์ k์ผ๊น์ง๋ ๋ชจ๋ ์ถ์ฐ ๊ฐ์์ ์ ์๊ฐ ๋ช ์์ ์ ๋น์ ์ค๋ฅด๊ฒ ๋ฉ๋๋ค. k์ผ ๋ค์๋ถํฐ๋ ์ถ์ฐ ๊ฐ์์ ์ ์๊ฐ ๊ธฐ์กด์ ๋ช ์์ ์ ๋น ๋ชฉ๋ก์ k๋ฒ์งธ ์์์ ๊ฐ์ ์ ์๋ณด๋ค ๋ ๋์ผ๋ฉด, ์ถ์ฐ ๊ฐ์์ ์ ์๊ฐ ๋ช ์์ ์ ๋น์ ์ค๋ฅด๊ฒ ๋๊ณ ๊ธฐ์กด์ k๋ฒ์งธ ์์์ ์ ์๋ ๋ช ์์ ์ ๋น์์ ๋ด๋ ค์ค๊ฒ ๋ฉ๋๋ค.
์ด ํ๋ก๊ทธ๋จ์์๋ ๋งค์ผ "๋ช ์์ ์ ๋น"์ ์ตํ์ ์ ์๋ฅผ ๋ฐํํฉ๋๋ค. ์๋ฅผ ๋ค์ด, k = 3์ด๊ณ , 7์ผ ๋์ ์งํ๋ ๊ฐ์์ ์ ์๊ฐ [10, 100, 20, 150, 1, 100, 200]์ด๋ผ๋ฉด, ๋ช ์์ ์ ๋น์์ ๋ฐํ๋ ์ ์๋ ์๋์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด [10, 10, 10, 20, 20, 100, 100]์ ๋๋ค.
๋ช ์์ ์ ๋น ๋ชฉ๋ก์ ์ ์์ ๊ฐ์ k, 1์ผ๋ถํฐ ๋ง์ง๋ง ๋ ๊น์ง ์ถ์ฐํ ๊ฐ์๋ค์ ์ ์์ธ score๊ฐ ์ฃผ์ด์ก์ ๋, ๋งค์ผ ๋ฐํ๋ ๋ช ์์ ์ ๋น์ ์ตํ์ ์ ์๋ฅผ returnํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐ก ์์ด๋์ด
k๊น์ง ๋๋ฉด์ score ์ฐจ๋ ๋๋ก rank ๋ฐฐ์ด์ ๋ฃ์ด์ฃผ๊ณ , ๋ฃ์ ๋๋ง๋ค ์ต์๊ฐ answer์ ๋ฃ์ด์ค๋ค.
k๋ถํฐ score ๊ธธ์ด๊น์ง ๋๋ฉด์ ๋ค์ด๊ฐ ์์๊ฐ rank ๋ฐฐ์ด์ ์ต์๊ฐ๋ณด๋ค ํฌ๋ค๋ฉด ์ต์๊ฐ ๋นผ๊ณ , ๊ทธ ๊ฐ์ ๋ฃ์ด์ค๋ค.
rank๋ฅผ sort ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ฆฌํ๊ณ , ์ต์๊ฐ์ answer์ ๋ฃ์ด์ฃผ๊ณ rank์์๋ ๋นผ์ค๋ค.
k๊ฐ score์ ๊ธธ์ด๋ณด๋ค ํด ๊ฒฝ์ฐ๋ ์๊ฐํด์ค์ผํ๋ค!!
โ๏ธ ํ์ด
function solution(k, score) {
var answer = [];
let rank = [];
if(k > score.length){
for(let i=0; i<score.length; i++){
rank[i] = score[i];
rank.sort((a, b) => b - a);
answer.push(rank[rank.length-1]);
}
}
else {
for(let i=0; i<k; i++){
rank[i] = score[i];
rank.sort((a, b) => b - a);
answer.push(rank[rank.length-1]);
}
}
for(let i=k; i<score.length; i++){
rank.sort((a, b) => b - a);
if(Math.min(...rank) < score[i]){
rank.pop();
rank.push(score[i]);
rank.sort((a, b) => b - a);
answer.push(rank[rank.length-1]);
}
else{
answer.push(rank[rank.length-1]);
}
}
return answer;
}
'Study > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ซ์ ์ง๊ฟ (0) | 2023.01.30 |
---|---|
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ฒด์ก๋ณต (0) | 2023.01.30 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ (0) | 2023.01.27 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ ๊ธ์ (0) | 2023.01.27 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์คํจ์จ (0) | 2023.01.27 |