JS
-
문제 이름 : 메뉴 리뉴얼 function solution(orders, course) { let menu = {}; // 메뉴들을 조합으로 가져오는 함수 function combination(order, idx, len, prev) { if (prev.length === len) { let cur_key = prev.sort().join(""); if (cur_key in menu) { menu[cur_key] += 1; } else menu[cur_key] = 1; return; } for (let i = idx; i < order.length; i++) { combination(order, i + 1, len, [...prev, order[i]]); } } //orders를 처음부터 끝까지 반복하면..
[Programmers] 메뉴 리뉴얼 문제 - (javascript)문제 이름 : 메뉴 리뉴얼 function solution(orders, course) { let menu = {}; // 메뉴들을 조합으로 가져오는 함수 function combination(order, idx, len, prev) { if (prev.length === len) { let cur_key = prev.sort().join(""); if (cur_key in menu) { menu[cur_key] += 1; } else menu[cur_key] = 1; return; } for (let i = idx; i < order.length; i++) { combination(order, i + 1, len, [...prev, order[i]]); } } //orders를 처음부터 끝까지 반복하면..
2022.01.24 -
문제 이름 : 방문 길이 function solution(dirs) { // 길의 방향을 저장해둘 변수(중복을 제거 -> Set) let answer = new Set(); let [y, x] = [0, 0]; let dir = { U : [-1, 0], D : [1,0], L : [0,-1], R : [0,1] }; for(let i of dirs){ let dy = y + dir[i][0]; let dx = x + dir[i][1]; if(dy5 || dx5) continue; // Set 함수는 add로 값을 넣음 // 1번에서 2번으로 가는 경로와 2번에서 1번으로 가는 경로는 같기 때문에 // 두개 다 추가하기 answer.add(""+y+x+dy+dx); answer.add(""+dy+dx+y..
[Programmers] 방문 길이 문제 - (javascript)문제 이름 : 방문 길이 function solution(dirs) { // 길의 방향을 저장해둘 변수(중복을 제거 -> Set) let answer = new Set(); let [y, x] = [0, 0]; let dir = { U : [-1, 0], D : [1,0], L : [0,-1], R : [0,1] }; for(let i of dirs){ let dy = y + dir[i][0]; let dx = x + dir[i][1]; if(dy5 || dx5) continue; // Set 함수는 add로 값을 넣음 // 1번에서 2번으로 가는 경로와 2번에서 1번으로 가는 경로는 같기 때문에 // 두개 다 추가하기 answer.add(""+y+x+dy+dx); answer.add(""+dy+dx+y..
2022.01.22 -
문제 이름 : 프린터 function solution(p, l) { let answer = 0; // 가장 큰 수인지 확인을 위해 깊은복사한 후 내림차순으로 정렬 let comp = [...p].sort((a,b)=>b-a); while(true){ // p의 첫번째가 가장 큰 수이면 // 횟수를 1회 올리며, 현재 위치가 0(내가 뽑고자했던 것이 뽑히는 상황)이면 // 정답을 출력하고, 그 외에는 comp와 p를 하나씩 제외하고 l을 줄입니다. if(p[0] === comp[0]){ answer+=1; if(l === 0){ return answer; } comp.shift(); p.shift(); l--; }else{ p.push(p.shift()); l--; } // 위의 연산이 끝나면 l위치가 -..
[Programmers] 프린터 문제 - (javascript)문제 이름 : 프린터 function solution(p, l) { let answer = 0; // 가장 큰 수인지 확인을 위해 깊은복사한 후 내림차순으로 정렬 let comp = [...p].sort((a,b)=>b-a); while(true){ // p의 첫번째가 가장 큰 수이면 // 횟수를 1회 올리며, 현재 위치가 0(내가 뽑고자했던 것이 뽑히는 상황)이면 // 정답을 출력하고, 그 외에는 comp와 p를 하나씩 제외하고 l을 줄입니다. if(p[0] === comp[0]){ answer+=1; if(l === 0){ return answer; } comp.shift(); p.shift(); l--; }else{ p.push(p.shift()); l--; } // 위의 연산이 끝나면 l위치가 -..
2022.01.22 -
문제 번호 : 5430 번 문제 바로가기 ☞ https://www.acmicpc.net/problem/5430 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; let input = fs.readFileSync(filePath).toString().trim().split("\r\n"); function toAC() { // 현재 앞 - 뒤 모드 let curMode = "front"; // 1번째 명령어 const opCode = input.shift(); // 2번째 배열 수 const arrLen = input.shift(); // 3번째 배열 let arr = in..
[BaekJoon] 5430 번 AC 문제 - (nodejs)문제 번호 : 5430 번 문제 바로가기 ☞ https://www.acmicpc.net/problem/5430 const fs = require("fs"); const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt"; let input = fs.readFileSync(filePath).toString().trim().split("\r\n"); function toAC() { // 현재 앞 - 뒤 모드 let curMode = "front"; // 1번째 명령어 const opCode = input.shift(); // 2번째 배열 수 const arrLen = input.shift(); // 3번째 배열 let arr = in..
2022.01.19 -
문제 이름 : 거리두기 확인하기 function dfs(y, x, array){ const dy = [-1,1,0,0]; const dx = [0,0,-1,1]; let queue = []; let visited = Array.from(Array(5), () => new Array(5).fill(0)); let tempqueue = [[y, x]]; let cnt = 0; while(cnt0){ let [y, x] = queue.shift(); visited[y][x] = 1; for(let i=0; i
[Programmers] 거리두기 확인하기 문제 - (javascript)문제 이름 : 거리두기 확인하기 function dfs(y, x, array){ const dy = [-1,1,0,0]; const dx = [0,0,-1,1]; let queue = []; let visited = Array.from(Array(5), () => new Array(5).fill(0)); let tempqueue = [[y, x]]; let cnt = 0; while(cnt0){ let [y, x] = queue.shift(); visited[y][x] = 1; for(let i=0; i
2022.01.19 -
문제 번호 : 2143번 문제 바로가기 ☞ https://www.acmicpc.net/problem/2143 const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; let input = fs.readFileSync(filePath).toString().trim().split('\r\n'); const N = input.shift(); const A_Length = input.shift(); let A = input[0].split(' ').map(Number); input.shift(); const B_Length = input.shift(); let B = input[0]...
[BaekJoon] 2143번 두 배열의 합 문제 - (nodejs/javascript)문제 번호 : 2143번 문제 바로가기 ☞ https://www.acmicpc.net/problem/2143 const fs = require('fs'); const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt'; let input = fs.readFileSync(filePath).toString().trim().split('\r\n'); const N = input.shift(); const A_Length = input.shift(); let A = input[0].split(' ').map(Number); input.shift(); const B_Length = input.shift(); let B = input[0]...
2022.01.15