https://school.programmers.co.kr/learn/courses/30/lessons/49994?language=javascript
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
ํ๋ก๊ทธ๋๋จธ์ค ๋ ๋ฒจ2.
set ์๋ฃํ์ ํ์ฉํ๋ฉด ๊ฐ๋จํ๊ฒ ํด๊ฒฐํ ์ ์๋ค.
๋ฌธ์ ๋..
๊ฐ์ฒด(๋ฐฐ์ด ํฌํจ)๋ ์ฐธ์กฐ(reference)๋ก ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ ๊ฐ์ ๊ฐ์ง ๋ฐฐ์ด์ด ์ฌ๋ฌ ๊ฐ ๋ค์ด๊ฐ ์ ์๋ค
์๋๋๋ก ๋ฐฐ์ด์ Set์ ๋ฃ์ด์ ์ฐ๋ ค๋ฉด ๋ฌธ์์ด๋ก ๋ฐ๊ฟ์ผ ํจ ใ ใ
๋ค๋ฅธ ์ธ์ด๋ ๊ทธ๋ฐ๊ฐ ์ถ์ด์ C++, ํ์ด์ฌ๋ gptํํ ๋ฌผ์ด๋ดค๋ค
๐ ์ ๋ฆฌ: ์ธ์ด๋ณ Set์์ ๋ฐฐ์ด(๊ฐ์ฒด)์ ์ค๋ณต ๋น๊ต ๋ฐฉ์
์ธ์ด | ๊ธฐ๋ณธ ์๋ฃํ (int, string ๋ฑ) | ๋ฐฐ์ด(๋ฆฌ์คํธ, ๋ฒกํฐ ๋ฑ) ๋น๊ต ๋ฐฉ์ |
JavaScript | ๊ฐ ๋น๊ต | ์ฐธ์กฐ(reference) ๋น๊ต → ๊ฐ์ด ๊ฐ์๋ ๋ค๋ฅธ ๊ฐ์ฒด๋ก ์ทจ๊ธ |
Python | ๊ฐ ๋น๊ต | ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ tuple๋ง ์ ์ฅ ๊ฐ๋ฅ, ๊ฐ ๋น๊ต |
C++ | ๊ฐ ๋น๊ต | ๊ฐ ๋น๊ต(operator< ์ฌ์ฉ), ๊ฐ์ ๊ฐ์ด๋ฉด ์ค๋ณต ์ ๊ฑฐ |
โ JavaScript๋ง ๋ฐฐ์ด์ ์ฐธ์กฐ(reference)๋ก ๋น๊ตํ๊ณ , Python๊ณผ C++์ ๊ฐ(value)์ผ๋ก ๋น๊ตํ๋ ์ฐจ์ด๊ฐ ์์ด!
๐ JavaScript์์ ๋ฐฐ์ด์ Set์ ์ ์ฅํ ๋ ์ค๋ณต์ ๋ฐฉ์งํ๋ ค๋ฉด JSON.stringify() ๊ฐ์ ๋ณํ์ด ํ์! ๐
๋์ ํ์ด
// up, right, down, left
let dx = [0,1,0,-1];
let dy = [1,0,-1,0];
function outOfRange(x,y){
if(x<-5 || x>5 || y<-5 || y>5) return true;
return false;
}
function solution(dirs) {
let move = new Set();
let answer = 0;
let nx = 0;
let ny = 0;
let idx = 0;
for(let i=0; i<dirs.length; ++i){
switch(dirs[i]){
case 'U': idx=0;
break;
case 'R': idx=1;
break;
case 'D': idx=2;
break;
default: idx=3;
}
if(outOfRange(nx+dx[idx], ny+dy[idx])) continue;
let newX = nx+dx[idx];
let newY = ny+dy[idx];
let arr = [ [nx, ny], [nx+dx[idx], ny+dy[idx]] ];
arr.sort();
move.add(JSON.stringify(arr))
nx = newX;
ny = newY;
}
// console.log(move);
answer = move.size;
return answer;
}
'๐ ์๊ณ ๋ฆฌ์ฆ > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[MySQL/PGS] Lv.2 : ์กฐ๊ฑด์ ๋ง๋ ์์ดํ ๋ค์ ๊ฐ๊ฒฉ์ ์ดํฉ ๊ตฌํ๊ธฐ (0) | 2025.03.09 |
---|---|
[MySQL/PGS] Lv.4 : 5์ ์ํ๋ค์ ์ด๋งค์ถ ์กฐํํ๊ธฐ (0) | 2025.03.03 |
[Javascript/PGS] Lv.3 : ์คํฐ์ปค ๋ชจ์ผ๊ธฐ(2) - ํ๋๋ง ํ๋ฆด ๋ ํด๊ฒฐ (0) | 2025.02.27 |
[Javascript/PGS] Lv.3 : ๋ฑ๋ - js ๋ฐํ์์๋ฌ ํด๊ฒฐ๋ฒ (0) | 2025.02.26 |
[Javascript/PGS] Lv.2 : ์คํฌํธ๋ฆฌ (0) | 2025.02.26 |