문제 설명 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..
분류 전체보기
문제 설명 https://www.acmicpc.net/problem/23971 23971번: ZOAC 4 i행 j열 자리를 (i, j)라고 할 때, (1,1)에 참가자가 앉은 경우 다른 참가자는 (1,2), (2,1), (2,2) 자리를 제외한 나머지 자리에 앉을 수 있다. (2,2)의 경우는 (1,1)과 행 번호 및 열 번호의 차가 1보다 크 www.acmicpc.net 문제 풀이 방법 x축과 y축 각각 띄어앉을 칸 수를 for문에 적용시켜 cnt를 1씩 더해주는 방법으로 문제를 풀었다. 코드 const path = __dirname + '/예제.txt'; // /dev/stdin let input = require('fs').readFileSync(path).toString().trim().split..
문제 설명https://www.acmicpc.net/problem/5073 5073번: 삼각형과 세 변각 입력에 맞는 결과 (Equilateral, Isosceles, Scalene, Invalid) 를 출력하시오.www.acmicpc.net 문제 풀이 방법삼각형의 경우를 수를 if-elseif 문으로 설정하고 문제를 풀었다. 코드const path = __dirname + '/예제.txt'; // /dev/stdinlet input = require('fs').readFileSync(path).toString().trim().split('\n').map(e => e.split(' ').map(Number).sort((a, b) => b - a));const arr = input.slice(0, inpu..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTt4zd%2FbtsluhOIsGf%2FMuazPzR9mIBr5y4lfxtkn1%2Fimg.jpg)
문제 설명 문제 풀이 방법 이 문제는 스택을 사용하는 문제이지만 괄호들이 좌로 한칸씩 회전하며 검증을 해야하기에 기존에 stack 배열에 추가 제거 하는 방식으로는 시간초과가 발생할거 같아 다른 방식을 참고했다. 기존에 내가 사용하던 방식은 돌아가며 stack배열에 하나씩 추가하며 괄호가 짝이 맞으면 pop()메서드를 이용해 stack에서 제거하는 방식이지만, 이번에는 맨 앞요소를 시작으로 짝을 비교하며 짝이 맞다면 stack에서 제거, 맞지 않는다면 stack에 추가하는 방식으로 했다. 이때 다른점은 stack에서 비교해 수정하는 것이 아니라 주어진 배열 혹은 문자열에서 stack에 있는 요소와 비교하는 방식이다. 코드 function solution(s) { let cnt = 0; for(let i=..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FedZOfl%2FbtsljSVTytN%2FHUFUDX18ZsRJEXQ95UfoNk%2Fimg.jpg)
문제 설명 문제 풀이 방법 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 }