문제 풀이
-
[프로그래머스]124 나라의 숫자문제 풀이 2020. 5. 23. 22:51
문제 설명124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다.124 나라에는 자연수만 존재합니다.124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다.예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다.10진법124 나라10진법124 나라1161422721348224119245121041자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요.제한사항n은 500,000,000이하의 자연수 입니다.입출력 예nresult112234411 풀이)1 -> 12 -> 23 -> 44 -> 115 -> 126 -> 14...10 -> 4111 -> 4..
-
[프로그래머스] 징검다리문제 풀이 2020. 5. 22. 23:17
문제 설명출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다. 예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 [2, 14, 11, 21, 17] 지점에 놓여있을 때 바위 2개를 제거하면 출발지점, 도착지점, 바위 간의 거리가 아래와 같습니다.제거한 바위의 위치각 바위 사이의 거리거리의 최솟값[21, 17][2, 9, 3, 11]2[2, 21][11, 3, 3, 8]3[2, 11][14, 3, 4, 4]3[11, 21][2, 12, 3, 8]2[2, 14][11, 6, 4, 4]4위에서 구한 거리의 최솟값 중에 가장 큰 값은 4입니다.출발지점부터 도착지점까지의 거리 distance, 바위들이 있는 위치를 담은..
-
[프로그래머스] 예산문제 풀이 2020. 5. 22. 20:00
문제 설명국가의 역할 중 하나는 여러 지방의 예산요청을 심사하여 국가의 예산을 분배하는 것입니다. 국가예산의 총액은 미리 정해져 있어서 모든 예산요청을 배정해 주기는 어려울 수도 있습니다. 그래서 정해진 총액 이하에서 가능한 한 최대의 총 예산을 다음과 같은 방법으로 배정합니다.1. 모든 요청이 배정될 수 있는 경우에는 요청한 금액을 그대로 배정합니다. 2. 모든 요청이 배정될 수 없는 경우에는 특정한 정수 상한액을 계산하여 그 이상인 예산요청에는 모두 상한액을 배정합니다. 상한액 이하의 예산요청에 대해서는 요청한 금액을 그대로 배정합니다. 예를 들어, 전체 국가예산이 485이고 4개 지방의 예산요청이 각각 120, 110, 140, 150일 때, 상한액을 127로 잡으면 위의 요청들에 대해서 각각 12..
-
[프로그래머스] 이중우선순위큐문제 풀이 2020. 5. 21. 19:17
문제 설명이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다.명령어수신 탑(높이)I 숫자큐에 주어진 숫자를 삽입합니다.D 1큐에서 최댓값을 삭제합니다.D -1큐에서 최솟값을 삭제합니다.이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요.제한사항operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다.operations의 원소는 큐가 수행할 연산을 나타냅니다.원소는 “명령어 데이터” 형식으로 주어집니다.- 최댓값/최솟값을 삭제하는 연산에서 최댓값/최솟값이 둘 이상인 경우, 하나만 삭제합니다.빈 큐에 데이터를 ..
-
[프로그래머스] 라면공장문제 풀이 2020. 5. 21. 17:33
문제 설명라면 공장에서는 하루에 밀가루를 1톤씩 사용합니다. 원래 밀가루를 공급받던 공장의 고장으로 앞으로 k일 이후에야 밀가루를 공급받을 수 있기 때문에 해외 공장에서 밀가루를 수입해야 합니다.해외 공장에서는 향후 밀가루를 공급할 수 있는 날짜와 수량을 알려주었고, 라면 공장에서는 운송비를 줄이기 위해 최소한의 횟수로 밀가루를 공급받고 싶습니다.현재 공장에 남아있는 밀가루 수량 stock, 밀가루 공급 일정(dates)과 해당 시점에 공급 가능한 밀가루 수량(supplies), 원래 공장으로부터 공급받을 수 있는 시점 k가 주어질 때, 밀가루가 떨어지지 않고 공장을 운영하기 위해서 최소한 몇 번 해외 공장으로부터 밀가루를 공급받아야 하는지를 return 하도록 solution 함수를 완성하세요.date..
-
[프로그래머스] 서울에서 경산까지문제 풀이 2020. 5. 20. 18:20
문제 설명서울에서 경산까지 여행을 하면서 모금 활동을 하려 합니다. 여행은 서울에서 출발해 다른 도시를 정해진 순서대로 딱 한 번 방문한 후 경산으로 도착할 예정입니다. 도시를 이동할 때에는 도보 혹은 자전거를 이용합니다. 이때 도보 이동에 걸리는 시간, 도보 이동 시 얻을 모금액, 자전거 이동에 걸리는 시간, 자전거 이동 시 얻을 모금액이 정해져 있습니다. K시간 이내로 여행할 때 모을 수 있는 최대 모금액을 알아보려 합니다.예를 들어 여행 루트가 다음과 같고 K = 1,650 일 때1, 2번 구간은 도보로, 3번 구간은 자전거로 이동해 모금액을 660으로 하는 것이 가장 좋은 방법입니다. 이때, 1,600시간이 소요됩니다.solution 함수의 매개변수로 각 도시를 이동할 때 이동 수단별로 걸리는 시..
-
[프로그래머스] 카드게임문제 풀이 2020. 5. 20. 14:21
문제 설명카드게임이 있다. 게임에 사용하는 각 카드에는 양의 정수 하나가 적혀있고 같은 숫자가 적힌 카드는 여러 장 있을 수 있다. 게임방법은 우선 짝수개의 카드를 무작위로 섞은 뒤 같은 개수의 두 더미로 나누어 하나는 왼쪽에 다른 하나는 오른쪽에 둔다.각 더미의 제일 위에 있는 카드끼리 서로 비교하며 게임을 한다. 게임 규칙은 다음과 같다. 지금부터 왼쪽 더미의 제일 위 카드를 왼쪽 카드로, 오른쪽 더미의 제일 위 카드를 오른쪽 카드로 부르겠다.1. 언제든지 왼쪽 카드만 통에 버릴 수도 있고 왼쪽 카드와 오른쪽 카드를 둘 다 통에 버릴 수도 있다. 이때 얻는 점수는 없다. 2. 오른쪽 카드에 적힌 수가 왼쪽 카드에 적힌 수보다 작은 경우에는 오른쪽 카드만 통에 버릴 수도 있다. 오른쪽 카드만 버리는 경..
-
[프로그래머스] 등굣길문제 풀이 2020. 5. 19. 17:55
풀이)백준 1520 내리막 문제 풀이를 응용해서 풀었다. (dp와 dfs)다른 점이라면, 최단 경로의 수를 구하는 것이므로 방향을 상하좌우가 아닌 하우만 본다는 것이다.돌아가는 경로를 아예 차단하는 방법 주의점m과 n이 어떤 좌표를 뜻하는지 잘봐야한다.m이 가로고, n이 세로다.물웅덩이도 {m,n} 좌표로 준다. 코드)include #include #include using namespace std; int dp[101][101]; int dy[2] = {1,0}; int dx[2] = {0,1}; #define mod_val 1000000007 int dfs(int y,int x, int m,int n){ if(y== n &&x == m )return 1; if(dp[y][x] == -1){ dp[y]..