Jieunny์ ๋ธ๋ก๊ทธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ ๋ณธ๋ฌธ
๐ ๋ฌธ์
์์์๋ ๋งค๋
๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ๊ฐ ์ด๋ฆฝ๋๋ค. ํด์ค์ง๋ค์ ์ ์๋ค์ด ์๊ธฐ ๋ฐ๋ก ์์ ์ ์๋ฅผ ์ถ์ํ ๋ ์ถ์ํ ์ ์์ ์ด๋ฆ์ ๋ถ๋ฆ
๋๋ค. ์๋ฅผ ๋ค์ด 1๋ฑ๋ถํฐ 3๋ฑ๊น์ง "mumu", "soe", "poe" ์ ์๋ค์ด ์์๋๋ก ๋ฌ๋ฆฌ๊ณ ์์ ๋, ํด์ค์ง์ด "soe"์ ์๋ฅผ ๋ถ๋ ๋ค๋ฉด 2๋ฑ์ธ "soe" ์ ์๊ฐ 1๋ฑ์ธ "mumu" ์ ์๋ฅผ ์ถ์ํ๋ค๋ ๊ฒ์
๋๋ค. ์ฆ "soe" ์ ์๊ฐ 1๋ฑ, "mumu" ์ ์๊ฐ 2๋ฑ์ผ๋ก ๋ฐ๋๋๋ค.
์ ์๋ค์ ์ด๋ฆ์ด 1๋ฑ๋ถํฐ ํ์ฌ ๋ฑ์ ์์๋๋ก ๋ด๊ธด ๋ฌธ์์ด ๋ฐฐ์ด players์ ํด์ค์ง์ด ๋ถ๋ฅธ ์ด๋ฆ์ ๋ด์ ๋ฌธ์์ด ๋ฐฐ์ด callings๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฒฝ์ฃผ๊ฐ ๋๋ฌ์ ๋ ์ ์๋ค์ ์ด๋ฆ์ 1๋ฑ๋ถํฐ ๋ฑ์ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐ก ์์ด๋์ด
1. ์ด๋ฆ์ด ๋ถ๋ฆฌ๋ฉด ๋ฐฐ์ด์์ ์ ์ฃผ์์ ์ด๋ฆ์ด ๋ถ๋ฆฐ ์ฃผ์๋ฅผ ๋ฐ๊ฟ์ค๋ค => ์๊ฐ ์ด๊ณผ ๋ ๊ฑฐ ์๊ณ ์์๋๋ฐ ์ผ๋จ ํด๋ดค๋คใ
ใ
..
๊ฒฐ๊ณผ๋ ์ด๋ป๊ฒ๋ ๋์ค์ง๋ง ํ
์ผ 4๊ฒฝ์ฐ ์๊ฐ์ด๊ณผ
2. ๋ฑ์๋ฅผ ๋ฏธ๋ฆฌ ๊ฐ์ฒด๋ก ์ ์ฅํด๋ฌ์ ์ด์ค ํฌ๋ฌธ ๋์ง ์๊ฒ ๊ตฌํํ๋ค.
โ๏ธ ํ์ด
// ์๊ฐ์ด๊ณผ ์ฝ๋
function solution(players, callings) {
for(let i=0; i<callings.length; i++) {
let temp = 1;
for(let j=0; j<players.length; j++) {
if(callings[i] === players[j]) {
temp = players[j-1];
players[j-1] = players[j];
players[j] = temp;
}
}
}
return players;
}
// ์ ๋ต
function solution(players, callings) {
let rank = {};
for (let i = 0; i < players.length; i++) {
const key = players[i];
const value = i;
rank[key] = value;
}
for(let i=0; i<callings.length; i++){
const idx = rank[callings[i]]; // ์ด๋ฆ ๋ถ๋ฅธ ์ฃผ์์ ๋ฑ์ ์ ์ฅ
const front = players[idx-1]; // ์ด๋ฆ ๋ถ๋ฅธ ์ฃผ์์ ์ ์ฃผ์ ์ ์ฅ
players[idx-1] = callings[i]; // ์ ์ฃผ์๋ฅผ ์ด๋ฆ ๋ถ๋ฅธ ์ฃผ์๋ก ๋ณ๊ฒฝ
players[idx] = front; // ์ด๋ฆ ๋ถ๋ฅธ ์ฃผ์๋ฅผ ์ ์ฃผ์๋ก ์ ์ฅ
rank[callings[i]] = idx - 1; // ์ด๋ฆ ๋ถ๋ฅธ ์ฃผ์์ ๋ฑ์๋ฅผ ํ ์์ ์์ผ๋ก
rank[front] = idx; // ์ด๋ฆ ๋ถ๋ฅธ ์ฃผ์์ ์ ์ฃผ์์ ๋ฑ์๋ฅผ ํ ์์ ๋ค๋ก
}
return players;
}
'Study > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๋ ๋ฐ๋จน๊ธฐ (0) | 2023.07.19 |
---|---|
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๋์ถฉ ๋ง๋ ์ํ (0) | 2023.07.18 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ํ ์ธ ํ์ฌ (0) | 2023.04.04 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ํผ๋ก๋ (0) | 2023.04.04 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ (0) | 2023.04.04 |