개발/코딩테스트
-
프로그래머스 등굣길개발/코딩테스트 2025. 1. 11. 00:31
행 : n , 열 : m , 물이 잠긴 지역의 좌표 : puddles 1,1로 가는 경우 0,1로 간 총횟수와 1,0으로 간 총횟수를 더한 값 시작지점을 1로 설정하여 이후 값을 더함 public int solution(int m, int n, int[][] puddles) { int[][]dp = new int[n][m]; for(int[] puddle : puddles) dp[puddle[1]-1][puddle[0]-1] = -1; dp[0][0] = 1; for(int i=0; i0) dp[i][j]+=dp[i-1][j]% 1000000007; if(j>0) dp[i][j]+=d..
-
프로그래머스 정수 삼각형개발/코딩테스트 2025. 1. 5. 18:13
해석가장 왼쪽의 경우 이전 행의 가장 왼쪽의 값을 현재의 값과 합산한것이 현재의 값이 된다 가장 오른쪽의 경우 이전 행의 가장 오른쪽의 값을 현재의 값과 합산한 것이 현재의 값이 된다. 그 외의 경우 이전 행에서의 왼쪽 열의 값과 이전 행의 오른쪽 열의 값 중 큰 값을 현재의 값과 합산한 것이 현재의 값이 된다 첫번째 행의 경우 계산의 대상이 아니니 제외한다 cf) 전제가 삼각형이므로 가장 왼쪽 혹은 가장 오른쪽의 경우 행 , 열이 -1씩 줄어든다 풀이 public int solution(int[][] triangle) { int answer =0; for(int i=1; i
-
게임맵 최단거리개발/코딩테스트 2024. 12. 29. 16:24
문제 ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다.cf) 문제의 양이 너무 많아서 링크로 대체 합니다. https://school.programmers.co.kr/learn/courses/30/lessons/1844 풀이 주요생각 4방향으로 이동 하여 거리를 이동하되 음수 이거나 이미 방문 했을 경우는 재방문을 하지 않는다 4방향 = { {1,0} , {0,1} , {-1,0} , {0,-1} }방문 여부 boolean[][] visited queue에 저장될 값은 해당 좌표의 위치와 현재 거리를 얼마나 이동햇는지에 대한 값이 필요하다 좌표가 마지막으로 이동하면 작업을 종료하고 해당..
-
이중우선순위큐개발/코딩테스트 2024. 12. 26. 14:13
문제이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요.조건 I 숫자 : 큐에 주어진 숫자를 삽입합니다.D 1 : 큐에서 최댓값을 삭제합니다.D -1 : 큐에서 최솟값을 삭제합니다. 풀이 for을 돌린후 I 조건이면 List에 add D이면 List의 사이즈가 있울 경우 1 , -1에 의해 List를 정렬을 한 후 첫번째 로우를 제거 만약 최종 집계에 List의 사이즈가 없으면 0 ,0 출력 List의 사이즈가 있으면 정렬하여 첫번쨰 로우 , 마지막 로우를 출력 public static int[] solution(String[] ope..
-
다리를 지나는 트럭개발/코딩테스트 2024. 12. 22. 19:07
문제 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다.예를 들어, 트럭 2대가 올라갈 수 있고 무게를 10kg까지 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6]kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다.bridge_lengthweighttruck_weightsreturn2107,4,5,681001001010110010010,10,10,10,10,10,10,10,10,10110 풀이..
-
기능개발개발/코딩테스트 2024. 12. 17. 20:43
문제프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다.또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다.먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 풀이 앞의 개발이 완료되기 전까지 뒤의 개발은 배포 되면 안되며 앞의 개발이 완료될때 뒤의 개발도 배포가 된다 그러므로 queue에 넣어 값을 빼며 비교 대상에 다음 스텝을 ..
-
프로그래머스 메뉴리뉴얼개발/코딩테스트 2024. 9. 25. 13:32
문제레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다.기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 새로운 메뉴를 제공하기로 결정했습니다. 어떤 단품메뉴들을 조합해서 코스요리 메뉴로 구성하면 좋을 지 고민하던 "스카피"는 이전에 각 손님들이 주문할 때 가장 많이 함께 주문한 단품메뉴들을 코스요리 메뉴로 구성하기로 했습니다.단, 코스요리 메뉴는 최소 2가지 이상의 단품메뉴로 구성하려고 합니다. 또한, 최소 2명 이상의 손님으로부터 주문된 단품메뉴 조합에 대해서만 코스요리 메뉴 후보에 포함하기로 했습니다.예를 들어, 손님 6명이 주문한 단품메뉴들의 조합이 다음과 같다면,(각 손님은 단품메뉴를 2개 이상 주문해야 하며, 각 단품..
-
프로그래머스 개인정보 수집 유효기간개발/코딩테스트 2024. 9. 19. 17:00
문제설명고객의 약관 동의를 얻어서 수집된 1~n번으로 분류되는 개인정보 n개가 있습니다. 약관 종류는 여러 가지 있으며 각 약관마다 개인정보 보관 유효기간이 정해져 있습니다. 당신은 각 개인정보가 어떤 약관으로 수집됐는지 알고 있습니다. 수집된 개인정보는 유효기간 전까지만 보관 가능하며, 유효기간이 지났다면 반드시 파기해야 합니다.예를 들어, A라는 약관의 유효기간이 12 달이고, 2021년 1월 5일에 수집된 개인정보가 A약관으로 수집되었다면 해당 개인정보는 2022년 1월 4일까지 보관 가능하며 2022년 1월 5일부터 파기해야 할 개인정보입니다.당신은 오늘 날짜로 파기해야 할 개인정보 번호들을 구하려 합니다.모든 달은 28일까지 있다고 가정합니다.다음은 오늘 날짜가 2022.05.19일 때의 예시입..