프로그래머스

문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/42884 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 이 문제는 수학적으로 접근해야 하는 문제인거 같다... 우선 주어지는 차량의 진입, 나간 지점을 진입한 지점을 기준으로 정렬해준다. 그리고 첫번째 나가는 지점의 기준을 잡아준다(첫번째 차량의 나가는 지점) 이렇게 잡은 기준을 가지고 다음에 오는 차량의 나가는 점을 비교해준다. 여기서 이전 차량의 나가는 점이 다음 차량이 나가는 점보다 큰 경우, 즉 이전 차량이 더 나중에..
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방법 이 문제는 행렬의 곱 공식을 알아야 풀이가 가능하다. https://mathbang.net/562#gsc.tab=0 행렬의 곱셈, 행렬의 거듭제곱 행렬의 곱셈은 행렬의 실수배에 비하면 훨씬 어려워요. 행렬을 곱할 수 있는 조건이 있어 이 조건을 만족하지 않으면 곱셈을 하지 못하는 경우도 있어요. 게다가 계산방식도 매우 까다롭죠. 도 mathbang.net 코드 funct..
문제 설명 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..
문제 설명 문제 풀이 방법 이 문제는 스택을 사용하는 문제이지만 괄호들이 좌로 한칸씩 회전하며 검증을 해야하기에 기존에 stack 배열에 추가 제거 하는 방식으로는 시간초과가 발생할거 같아 다른 방식을 참고했다. 기존에 내가 사용하던 방식은 돌아가며 stack배열에 하나씩 추가하며 괄호가 짝이 맞으면 pop()메서드를 이용해 stack에서 제거하는 방식이지만, 이번에는 맨 앞요소를 시작으로 짝을 비교하며 짝이 맞다면 stack에서 제거, 맞지 않는다면 stack에 추가하는 방식으로 했다. 이때 다른점은 stack에서 비교해 수정하는 것이 아니라 주어진 배열 혹은 문자열에서 stack에 있는 요소와 비교하는 방식이다. 코드 function solution(s) { let cnt = 0; for(let i=..
문제 설명 문제 풀이 방법 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 }
문제 설명 문제 풀이 방법 1개를 넘는 방법은 1개, 2개는 2개, 3개는 3개, 4개는 5개, 5개는 8개.... 이 패터는 피보나치 수의 패턴이다. 코드 function solution(n) { const dp = (n) => { const dp = new Array(n+1).fill(0); dp[0] = 1; dp[1] = 1; for(let i=2; i
58청춘
'프로그래머스' 태그의 글 목록 (17 Page)