목록프로그래머스 알고리즘 (225)
N
programmers.co.kr/learn/courses/30/lessons/67259 코딩테스트 연습 - 경주로 건설 [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr BFS와 DP를 활용한다. BFS로 길을 탐색하면서 다음에 이동할 위치의 비용이 현재 비용 + 건설 ..
programmers.co.kr/learn/courses/30/lessons/12907 코딩테스트 연습 - 거스름돈 Finn은 편의점에서 야간 아르바이트를 하고 있습니다. 야간에 손님이 너무 없어 심심한 Finn은 손님들께 거스름돈을 n 원을 줄 때 방법의 경우의 수를 구하기로 하였습니다. 예를 들어서 손님께 5 programmers.co.kr DP 사용. 백준 2293 동전1 문제와 같다. eunchanee.tistory.com/296 (백준 c++)2293 동전 1 문제 n가지 종류의 동전이 있다. 각각의 동전이 나타내는 가치는 다르다. 이 동전을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다. 그 경우의 수를 구하시오. 각각의 동전은 몇 개라 eunchanee.tistory.com #i..
programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 큐 방식으로 풀이. progresses가 빌 때까지 반복. 하루가 지날 때마다 각각 개발의 진행량을 더해준다. 만약 progresses의 맨 앞이 100을 넘었으면 배포를 해야한다. progresses의 맨 앞을 제거하면서 계속해서 개발이 끝난 기능이 있는지 확인하면서 ans를 늘려준다. 만약 ans가 0이라면 현재는 개발이 완료되지 않았기 때문에 그대로 진행한다. a..
programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr 큐를 이용한 풀이. 우선 큐를 다리 길이만큼 선언하여 0으로 초기화 한다. 큐가 빌 때까지 while문을 반복한다. sum은 현재 다리의 올라가 있는 트럭의 무게다. 큐의 맨 앞에 있는 트럭의 무게를 빼주면서 진행. 만약 다리 위에 트럭이 올라가지 못하는 경우는 0을 큐에 넣어준다. 큐가 비게 되면 모든 트럭이 다리를 지나간 경우가 된다. function so..
programmers.co.kr/learn/courses/30/lessons/42587?language=javascript 코딩테스트 연습 - 프린터 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린 programmers.co.kr 큐를 이용한 풀이. 대기 목록 중 최댓값이 큐의 맨 앞에 있는지 확인하면서, 내가 원하는 작업인지 체크해야 한다. 우선순위에 밀리는 경우 대기 목록의 맨 뒤에 넣으면서 location도 바꿔주면 된다. function solution(priorities, location) { let answer = 0; while(1){ let max = Ma..
programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 플로이드 와샬을 이용. 거쳐가는 게 이득인 경우 값을 갱신하면서 진행. 마지막에는 모든 경로를 탐..

programmers.co.kr/learn/courses/30/lessons/60059# 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 완전 탐색으로 답이 있을 때까지 찾아야 한다. 답이 없으면 false를 리턴. N = 자물쇠의 크기, M = 열쇠의 크기 우선 키를 4가지의 형태로 준비한다. 원래의 키 형태와 90도, 180, 270도를 돌린 키를 keys 배열에 저장한다. 그리고 자물쇠를 80 * 80 2차원 벡터 board에 다시 저장한다. 열쇠를 돌려가면서 열리는지 확인하기 위함이다. 자물쇠의 시작 인덱스는 board[M - 1][M - 1]이다. ..
programmers.co.kr/learn/courses/30/lessons/12978 코딩테스트 연습 - 배달 5 [[1,2,1],[2,3,3],[5,2,2],[1,4,2],[5,3,1],[5,4,2]] 3 4 6 [[1,2,1],[1,3,2],[2,3,2],[3,4,3],[3,5,2],[3,5,3],[5,6,1]] 4 4 programmers.co.kr 다익스트라를 이용하여 1에서 거리가 K 이하인 마을의 수를 구할 수 있다. #include #include #include #include using namespace std; int solution(int N, vector road, int K) { int answer = 0; vector graph[51]; priority_queue pq; vec..