function solution(players, callings) {
//player ์ ๋ฐฐ์ด -> callings ์ ์์ ์ ํด๋นํ๋ ์ ์์ ๊ทธ ์์ ์ ์์ ๋ฒํธ๋ฅผ ๋ฐ๊ฟ
//callings ๋ฅผ foreach ๋ก ๋๋ค
//callings ์ ์ด๋ฆ์ players ์์ indexOf ๋ก ์ฐพ๊ณ ,
//index-1 ๊ณผ ์์๋ฅผ ๋ฐ๊พผ๋ค. => ์ด์ ์ ์๋ฅผ ์ฐพ๊ณ , ๋จผ์ ์ด๋ฆ์ ๋ฃ๋๋ค.
callings.forEach(call => {
const callIndex = players.findIndex(v => v === call)
const fall = players[callIndex - 1];
players[callIndex] = fall;
players[callIndex - 1] = call;
console.log(players)
});
return players
}
์ฒจ์ ์์ฃผ ๊ฐ๋จํ๊ฒ ์์๋ฅผ ๋จผ์ ์ฐ๊ณ ์ด๋ ๊ฒ ์์ฑํ๋๋ฐ,
์์๋๋ก ์๊ฐ์ด๊ณผ๊ฐ ๋ด๋ค.
for ๋ฌธ ์์์ findIndex ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ n^2 ๊ฐ ๋ ๋ฏ,,, ํ๋ค!
๊ทธ๋ ๋ค๋ฉด index ๋ฅผ ๊ณ์ ์ฐพ๋ ๊ฒ ๋์ ๋ค๋ฅด๊ฒ ๊ธฐ๋กํ๋ ๋ฐฉ๋ฒ์ ์ฐพ์์ผํ๋ค.
map ์ ์ด์ฉํด ํ์ด๋ดค๋ค.
function solution(players, callings) {
const order = new Map();
players.forEach((name, index) => {
order.set(name, index);
})
callings.forEach(call => {
const callIndex = order.get(call)
const fall = players[callIndex - 1];
players[callIndex] = fall;
players[callIndex - 1] = call;
order.set(call, order.get(call) - 1);
order.set(fall, order.get(call) + 1);
});
return players
}
Map(5) { 'mumu' => 0, 'soe' => 3, 'poe' => 4, 'kai' => 1, 'mine' => 2 }
[ 'mumu', 'kai', 'mine', 'soe', 'poe' ]
๊ทธ๋ฅ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ์๋ ์์๋๋ฐ,
map ์ ์ฌ์ฉํ ๊ทผ๊ฑฐ๊ฐ ์ฌ์ค ์์๋ค...
๊ทธ๋์ ์ฐพ์๋ด.
์๋ ๋งํฌ์ ๊ทธ ์ฐจ์ด๊ฐ ์ ์ค๋ช ๋์ด ์๋ค.
Map ๊ฐ์ฒด๋ ํค-๊ฐ ์์ธ ์งํฉ์ ๋๋ค. ํ Map ์์์ ํค๋ ์ค์ง ๋จ ํ๋๋ง ์กด์ฌ ํฉ๋๋ค.
์ด๋ Map ์งํฉ์ ์ ์ผ์ฑ์ ๋๋ค.
์ด์ฏค ๋๋ ์ผ๋ง๋ ์ฐจ์ด๋๋ ๊ถ๊ธํด์ง.
function solution(players, callings) {
const order = {};
players.forEach((name, index) => {
order[name] = index;
})
callings.forEach(call => {
const callIndex = order[call];
const fall = players[callIndex - 1];
players[callIndex] = fall;
players[callIndex - 1] = call;
order[call] = callIndex - 1;
order[fall] = callIndex;
});
return players
}
Map ์ ์ด์ฉํ ๊ฒฐ๊ณผ vs Object ๋ฅผ ์ด์ฉํ ๊ฒฐ๊ณผ
์ค map ์ ์ฌ์ฉํ ๊ฒฐ๊ณผ๊ฐ ๋์ฒด๋ก ๋ ์ ์ด๋ณด์ธ๋ค.
๊ทธ๋ฆฌ๊ณ ๋ฐฐ์ด์ ์๊ฐ ์ ์ผ ๋ง์ 11, 12, 13 ์ผ์ด์ค์์ map ์ด ๋ฌด์กฐ๊ฑด ๋น ๋ฅด๋ค๊ณ ํ ์ ์์ง๋ง
11๋ฒ ์ฒ๋ผ ์๊ฐ๋ณต์ก๋๊ฐ ํ ์ฌ๋ผ๊ฐ๋ ๊ฒฝ์ฐ๋ ์๋ค.
์๊ฐ ๋ณต์ก๋๊ฐ ํด ๊ฒ์ผ๋ก ์์๋ ๋ map ์ ์ ์ฌ์ฉํด์ฃผ๋ฉด ์ฑ๋ฅ ๊ฐ์ ์ ์ ์๋ฏธํ ๊ฒฐ๊ณผ๊ฐ ์์ ๊ฒ ๊ฐ๋ค.