์์์๋ ๋งค๋
๋ฌ๋ฆฌ๊ธฐ ๊ฒฝ์ฃผ๊ฐ ์ด๋ฆฝ๋๋ค. ํด์ค์ง๋ค์ ์ ์๋ค์ด ์๊ธฐ ๋ฐ๋ก ์์ ์ ์๋ฅผ ์ถ์ํ ๋ ์ถ์ํ ์ ์์ ์ด๋ฆ์ ๋ถ๋ฆ
๋๋ค. ์๋ฅผ ๋ค์ด 1๋ฑ๋ถํฐ 3๋ฑ๊น์ง "mumu", "soe", "poe" ์ ์๋ค์ด ์์๋๋ก ๋ฌ๋ฆฌ๊ณ ์์ ๋, ํด์ค์ง์ด "soe"์ ์๋ฅผ ๋ถ๋ ๋ค๋ฉด 2๋ฑ์ธ "soe" ์ ์๊ฐ 1๋ฑ์ธ "mumu" ์ ์๋ฅผ ์ถ์ํ๋ค๋ ๊ฒ์
๋๋ค. ์ฆ "soe" ์ ์๊ฐ 1๋ฑ, "mumu" ์ ์๊ฐ 2๋ฑ์ผ๋ก ๋ฐ๋๋๋ค.
์ ์๋ค์ ์ด๋ฆ์ด 1๋ฑ๋ถํฐ ํ์ฌ ๋ฑ์ ์์๋๋ก ๋ด๊ธด ๋ฌธ์์ด ๋ฐฐ์ด players์ ํด์ค์ง์ด ๋ถ๋ฅธ ์ด๋ฆ์ ๋ด์ ๋ฌธ์์ด ๋ฐฐ์ด callings๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๊ฒฝ์ฃผ๊ฐ ๋๋ฌ์ ๋ ์ ์๋ค์ ์ด๋ฆ์ 1๋ฑ๋ถํฐ ๋ฑ์ ์์๋๋ก ๋ฐฐ์ด์ ๋ด์ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- 5 ≤ players์ ๊ธธ์ด ≤ 50,000
- players[i]๋ i๋ฒ์งธ ์ ์์ ์ด๋ฆ์ ์๋ฏธํฉ๋๋ค.
- players์ ์์๋ค์ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- players์๋ ์ค๋ณต๋ ๊ฐ์ด ๋ค์ด๊ฐ ์์ง ์์ต๋๋ค.
- 3 ≤ players[i]์ ๊ธธ์ด ≤ 10
- 2 ≤ callings์ ๊ธธ์ด ≤ 1,000,000
- callings๋ players์ ์์๋ค๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- ๊ฒฝ์ฃผ ์งํ์ค 1๋ฑ์ธ ์ ์์ ์ด๋ฆ์ ๋ถ๋ฆฌ์ง ์์ต๋๋ค.
๋์ ํ์ด
function solution(players, callings) {
const playerMap = {};
// calling ์์๋ค์ idx๋ฅผ ๋ฏธ๋ฆฌ ๊ตฌํด์ ์ ์ฅ
for (let i = 0; i < players.length; i++) {
playerMap[players[i]] = i;
}
for (let i = 0; i < callings.length; i++) {
const idx = playerMap[callings[i]];
const temp = players[idx-1];
// ํด๋น idx์ ์ด์ idx์ ์์๋ฅผ swap
players[idx-1] = callings[i];
players[idx] = temp;
// map์ idx๋ ๊ฐฑ์
playerMap[callings[i]] = idx - 1;
playerMap[temp] = idx;
}
return players;
}
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://school.programmers.co.kr/learn/challenges
'๐จ JavaScript > ๋ฌธ์ ํ๊ธฐ (ํ๋ก๊ทธ๋๋จธ์ค, ์ฝ๋ฉ์ ํ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค Level 1] PCCP ๊ธฐ์ถ๋ฌธ์ 1๋ฒ : ๋ถ๋ ๊ฐ๊ธฐ (0) | 2023.12.19 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค Level 1] 2022 KAKAO BLIND RECRUITMENT : ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ (1) | 2023.12.11 |
[ํ๋ก๊ทธ๋๋จธ์ค Level 1] ๋ฐํํ๋ฉด ์ ๋ฆฌ (0) | 2023.12.10 |
[ํ๋ก๊ทธ๋๋จธ์ค Level 1] ์ถ์ต ์ ์ (0) | 2023.12.10 |
[ํ๋ก๊ทธ๋๋จธ์ค Level 1] ์ผ์ด์ฌ (0) | 2023.12.10 |