ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์
์ฝ๋ฉํ ์คํธ ์ฐ์ต > 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด์ญ > ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ฒ์
๐ฉ ๋ฌธ์ ์ค๋ช
๊ฒ์๊ฐ๋ฐ์์ธ "์ฃ ๋ฅด๋"๋ ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ ๊ธฐ๊ณ๋ฅผ ๋ชจ๋ฐ์ผ ๊ฒ์์ผ๋ก ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค.
"์ฃ ๋ฅด๋"๋ ๊ฒ์์ ์ฌ๋ฏธ๋ฅผ ๋์ด๊ธฐ ์ํด ํ๋ฉด ๊ตฌ์ฑ๊ณผ ๊ท์น์ ๋ค์๊ณผ ๊ฐ์ด ๊ฒ์ ๋ก์ง์ ๋ฐ์ํ๋ ค๊ณ ํฉ๋๋ค.
๊ฒ์ ํ๋ฉด์ "1 x 1" ํฌ๊ธฐ์ ์นธ๋ค๋ก ์ด๋ฃจ์ด์ง "N x N" ํฌ๊ธฐ์ ์ ์ฌ๊ฐ ๊ฒฉ์์ด๋ฉฐ ์์ชฝ์๋ ํฌ๋ ์ธ์ด ์๊ณ ์ค๋ฅธ์ชฝ์๋ ๋ฐ๊ตฌ๋๊ฐ ์์ต๋๋ค. (์ ๊ทธ๋ฆผ์ "5 x 5" ํฌ๊ธฐ์ ์์์
๋๋ค). ๊ฐ ๊ฒฉ์ ์นธ์๋ ๋ค์ํ ์ธํ์ด ๋ค์ด ์์ผ๋ฉฐ ์ธํ์ด ์๋ ์นธ์ ๋น์นธ์
๋๋ค. ๋ชจ๋ ์ธํ์ "1 x 1" ํฌ๊ธฐ์ ๊ฒฉ์ ํ ์นธ์ ์ฐจ์งํ๋ฉฐ ๊ฒฉ์์ ๊ฐ์ฅ ์๋ ์นธ๋ถํฐ ์ฐจ๊ณก์ฐจ๊ณก ์์ฌ ์์ต๋๋ค. ๊ฒ์ ์ฌ์ฉ์๋ ํฌ๋ ์ธ์ ์ข์ฐ๋ก ์์ง์ฌ์ ๋ฉ์ถ ์์น์์ ๊ฐ์ฅ ์์ ์๋ ์ธํ์ ์ง์ด ์ฌ๋ฆด ์ ์์ต๋๋ค. ์ง์ด ์ฌ๋ฆฐ ์ธํ์ ๋ฐ๊ตฌ๋์ ์์ด๊ฒ ๋๋๋ฐ, ์ด๋ ๋ฐ๊ตฌ๋์ ๊ฐ์ฅ ์๋ ์นธ๋ถํฐ ์ธํ์ด ์์๋๋ก ์์ด๊ฒ ๋ฉ๋๋ค. ๋ค์ ๊ทธ๋ฆผ์ [1๋ฒ, 5๋ฒ, 3๋ฒ] ์์น์์ ์์๋๋ก ์ธํ์ ์ง์ด ์ฌ๋ ค ๋ฐ๊ตฌ๋์ ๋ด์ ๋ชจ์ต์
๋๋ค.
๋ง์ฝ ๊ฐ์ ๋ชจ์์ ์ธํ ๋ ๊ฐ๊ฐ ๋ฐ๊ตฌ๋์ ์ฐ์ํด์ ์์ด๊ฒ ๋๋ฉด ๋ ์ธํ์ ํฐ๋จ๋ ค์ง๋ฉด์ ๋ฐ๊ตฌ๋์์ ์ฌ๋ผ์ง๊ฒ ๋ฉ๋๋ค. ์ ์ํ์์ ์ด์ด์ [5๋ฒ] ์์น์์ ์ธํ์ ์ง์ด ๋ฐ๊ตฌ๋์ ์์ผ๋ฉด ๊ฐ์ ๋ชจ์ ์ธํ ๋ ๊ฐ๊ฐ ์์ด์ง๋๋ค.
ํฌ๋ ์ธ ์๋ ์ ์ธํ์ด ์ง์ด์ง์ง ์๋ ๊ฒฝ์ฐ๋ ์์ผ๋ ๋ง์ฝ ์ธํ์ด ์๋ ๊ณณ์์ ํฌ๋ ์ธ์ ์๋์ํค๋ ๊ฒฝ์ฐ์๋ ์๋ฌด๋ฐ ์ผ๋ ์ผ์ด๋์ง ์์ต๋๋ค. ๋ํ ๋ฐ๊ตฌ๋๋ ๋ชจ๋ ์ธํ์ด ๋ค์ด๊ฐ ์ ์์ ๋งํผ ์ถฉ๋ถํ ํฌ๋ค๊ณ ๊ฐ์ ํฉ๋๋ค. (๊ทธ๋ฆผ์์๋ ํ๋ฉดํ์ ์ ์ฝ์ผ๋ก 5์นธ๋ง์ผ๋ก ํํํ์์)
๊ฒ์ ํ๋ฉด์ ๊ฒฉ์์ ์ํ๊ฐ ๋ด๊ธด 2์ฐจ์ ๋ฐฐ์ด board์ ์ธํ์ ์ง๊ธฐ ์ํด ํฌ๋ ์ธ์ ์๋์ํจ ์์น๊ฐ ๋ด๊ธด ๋ฐฐ์ด moves๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ํฌ๋ ์ธ์ ๋ชจ๋ ์๋์ํจ ํ ํฐํธ๋ ค์ ธ ์ฌ๋ผ์ง ์ธํ์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
๐ฉ ์ ํ ์กฐ๊ฑด
โ๏ธ board ๋ฐฐ์ด์ 2์ฐจ์ ๋ฐฐ์ด๋ก ํฌ๊ธฐ๋ "5 x 5" ์ด์ "30 x 30" ์ดํ์
๋๋ค.
โ board์ ๊ฐ ์นธ์๋ 0 ์ด์ 100 ์ดํ์ธ ์ ์๊ฐ ๋ด๊ฒจ์์ต๋๋ค.
โ 0์ ๋น ์นธ์ ๋ํ๋
๋๋ค.
โ 1 ~ 100์ ๊ฐ ์ซ์๋ ๊ฐ๊ธฐ ๋ค๋ฅธ ์ธํ์ ๋ชจ์์ ์๋ฏธํ๋ฉฐ ๊ฐ์ ์ซ์๋ ๊ฐ์ ๋ชจ์์ ์ธํ์ ๋ํ๋
๋๋ค.
๐ moves ๋ฐฐ์ด์ ํฌ๊ธฐ๋ 1 ์ด์ 1,000 ์ดํ์
๋๋ค.
๐ค moves ๋ฐฐ์ด ๊ฐ ์์๋ค์ ๊ฐ์ 1 ์ด์์ด๋ฉฐ board ๋ฐฐ์ด์ ๊ฐ๋ก ํฌ๊ธฐ ์ดํ์ธ ์์ฐ์์
๋๋ค.
๐ฉ ๋ฌธ์ ํ์ด
function solution(board, moves) {
let bucket = []; // ๋ฐ๊ตฌ๋ ใ
.ใ
let count = 0; // ์ฌ๋ผ์ง๋ ์ธํ ๊ฐ์
for(i=0; i<moves.length; i++){
for(j=0; j<board.length; j++){
if(board[j][moves[i]-1]){
bucket.push(board[j][moves[i]-1]); // ๋ฝ์์ ๋ฐ๊ตฌ๋์ ๋ฃ๊ธฐ
board[j][moves[i]-1] = 0; // ๋ฝ์ ์ธํ ์ญ์
if(bucket[bucket.length-1] == bucket[bucket.length-2]){
bucket.pop();
bucket.pop();
count+=2; // ๋ฐ๊ตฌ๋์์ ๊ฐ์ ์ธํ ์ ๊ฑฐ
}
break;
}
}
}
return count;
}
ํ๋ค๊ฐ ์ ์ ๋จธ๋ฆฟ์์ด ํ์์ ธ์ A4์ฉ์ง ๊บผ๋์ต๋๋ค. ์ด์ ์ฐ์ต์ฅ์ด ํ์ํ๊ฐ ๋ด์. ๊ทธ๋๋ ํ์ด๋ด๋ ๋ฟ๋ฏํ๋ค์. ์ด์ ์ง์ณค์ผ๋ ์ค๋ช
์ ์ฃผ์์ ๋ณด์ธ์.
๋ฐ๊ตฌ๋ ์ ์ธํ์ ์ญ์ ํ๋ ๋ถ๋ถ์ ์ฒ์์๋ ํ๋ฒ๊ฑฐ ๋ง๋ค๊ธฐ ๋์ฒ๋ผ for๋ฌธ๊ณผ if๋ฌธ์ ์ฌ์ฉํ์๋๋ฐ, ํ ๋ฌธ์ ์์ ์๊ฐ ์ด๊ณผ๊ฐ ๋์์ต๋๋ค.
๊ทธ๋์ ์ฆ์ ๋น๊ตํ๊ณ pop()์ผ๋ก ์ญ์ ํด์ฃผ๋ ํต๊ณผ๋๋ค์. ์ ์ง ๋ฌด์ํด ๋ณด์ด๋๋ฐ์.
๐ฉ ๋ค๋ฅธ ํ์ด
function solution(board, moves) {
var count = 0;
var stack = [];
for(var i=0;i<moves.length;i++){
var now = moves[i]-1
for(var j=0;j<board.length;j++){
if(board[j][now]!=0){
if(stack[stack.length-1]===board[j][now]){
stack.pop();
count+=2;
}
else{
stack.push(board[j][now])
}
board[j][now] = 0;
break;
}
}
}
console.log(stack)
return count
}
๋น์ทํ ๋ฐฉ๋ฒ์ผ๋ก ํผ ๊ฒ ๊ฐ์๋ฐ, ์ด ํ์ด์์๋ ์ธํ์ ๋ฝ์๋ง์ ์ด์ ์ ๊ฒ๊ณผ ๋น๊ตํด์ ๊ฐ์ ์ธํ์ด๋ผ๋ฉด ์ฆ์ ์ ๊ฑฐํ๊ณ , ์๋ ๊ฒฝ์ฐ์๋ ์ธํ์ ์ถ๊ฐํด ์ฃผ์๋ค์.
'Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฐ์ ๊ธ์ (5) | 2022.12.08 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ๋ช ์์ ์ ๋น (1) (5) | 2022.12.08 |
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ํธ๋ ํ์ดํธ ๋ํ (4) | 2022.12.07 |
ํ๋ก๊ทธ๋๋จธ์ค 1๋จ๊ณ : ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (3) | 2022.12.05 |
ํ๋ก๊ทธ๋๋จธ์ค 2๋จ๊ณ : ์ต์๊ฐ ๋ง๋ค๊ธฐ (5) | 2022.12.05 |
๋๊ธ