문제https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이그냥 일반적인 BFS 문제로 처음 파악을 했다. 근데 풀어보니 틀리기도 했고 효율성 검사도 통과하지 않았다.const bfs = (arr, x) => { const start = Array.from({length: arr.length}, (_, i) => [i, x]); for(let i = 0; i = 0 && ny >= 0 && nx 1) continue; ..
map객체
문제https://www.acmicpc.net/problem/17140 풀이이 문제는 중복된 요소의 갯수를 측정해 이용하는 문제이다.Map객체를 이용해 시간복잡도를 최적화 해주는 로직이 핵심이라 생각한다. 코드const input = require('fs') .readFileSync(process.platform === 'linux' ? '/dev/stdin' : __dirname + '/example.txt') .toString().trim().split('\n').map(e => e.split(' ').map(Number));const [r, c, k] = input.shift();const arr = input;let cnt = 0;let temp = Array.from({ length: 10..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 중복된 요소의 갯수를 측정하기 위해 Map객체를 이용해 10일 동안 할인하는 물품들의 갯수를 측정한다. 이때 측정된 할인 물품 갯수와 원하는 물품의 갯수를 대조해 모두 같다면 answer에 1을 더한다. 코드 const solution = (want, number, discount) => { let answer = 0; const check = (arr) => { le..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 문제는 맨 나중에 나오는 결과를 출력하면 되므로 다시 들어왔을 때와 이름을 바꿀때 이름이 바뀌기에 Map객체를 이용해 최종적으로 모두 바뀐 이름을 Map에 저장해 둔뒤 사용한다. 코드 const solution = (record) => { let answer = []; let len = record.length; let input = record.map(e => e.sp..
문제 설명 문제 풀이 방법 Map 객체를 이용해 중복되는 사이즈의 귤 개수를 구한 뒤, 배열화 하여 sort로 큰 사이즈 순으로 정렬해 k 만큼 귤 개수를 채울 만큼 카운트를 늘려나간다. 코드 function solution(k, tangerine) { let freq = new Map(); let answer = 0; tangerine.forEach(e => freq.set(e, (freq.get(e) || 0) + 1)); const arr = [...freq].sort((a, b) => b[1] - a[1]).map(e => e[1]); while(k > 0){ k -= arr.shift(); answer++; } return answer }