본문 바로가기

728x90

알고리즘

[프로그래머스/JAVA] PCCP 기출문제 > 3번 > 충돌위험 찾기 (by 다알쥐AI) [충돌위험 찾기] PCCP 기출문제 > 3번 > 충돌위험 찾기  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기어떤 물류 센터는 로봇을 이용한 자동 운송 시스템을 운영합니다. 운송 시스템이 작동하는 규칙은 다음과 같습니다.물류 센터에는 (r, c)와 같이 2차원 좌표로 나타낼 수 있는 n개의 포인트가 존재합니다. 각 포인트는 1~n까지의 서로 다른 번호를 가집니다.로봇마다 정해진 운송 경로가 존재합니다. 운송 경로는 m개의 포인트로 구성되고 로봇은 첫 포인트에서 시작해 할당된 포인트를 순서대로 방문합니다.운송 시스템에 사용되는 로봇은 x대이고, 모든 로봇은 0초에 동시에 출발합니다. 로봇은 1초마다 r 좌표와 c 좌표 중 하나가 1만큼 감소하거나 증가한 좌표로 이동할 수 있습.. 더보기
[프로그래머스/JAVA] PCCP 기출문제> 1번 > 동영상 재생기 (by 다알쥐AI) [동영상 재생기] PCCP 기출문제> 1번  > 동영상 재생기  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기당신은 동영상 재생기를 만들고 있습니다. 당신의 동영상 재생기는 10초 전으로 이동, 10초 후로 이동, 오프닝 건너뛰기 3가지 기능을 지원합니다. 각 기능이 수행하는 작업은 다음과 같습니다.10초 전으로 이동: 사용자가 "prev" 명령을 입력할 경우 동영상의 재생 위치를 현재 위치에서 10초 전으로 이동합니다. 현재 위치가 10초 미만인 경우 영상의 처음 위치로 이동합니다. 영상의 처음 위치는 0분 0초입니다.10초 후로 이동: 사용자가 "next" 명령을 입력할 경우 동영상의 재생 위치를 현재 위치에서 10초 후로 이동합니다. 동영상의 남은 시간이 10초 미만일.. 더보기
[프로그래머스/JAVA] 고득점Kit > 이분탐색 > 징검다리 (by 다알쥐AI) [징검다리] 고득점Kit > 이분탐색 > 징검다리  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기출발지점부터 distance만큼 떨어진 곳에 도착지점이 있습니다. 그리고 그사이에는 바위들이 놓여있습니다. 바위 중 몇 개를 제거하려고 합니다.예를 들어, 도착지점이 25만큼 떨어져 있고, 바위가 [2, 14, 11, 21, 17] 지점에 놓여있을 때 바위 2개를 제거하면 출발지점, 도착지점, 바위 간의 거리가 아래와 같습니다. 위에서 구한 거리의 최솟값 중에 가장 큰 값은 4입니다. 출발지점부터 도착지점까지의 거리 distance, 바위들이 있는 위치를 담은 배열 rocks, 제거할 바위의 수 n이 매개변수로 주어질 때, 바위를 n개 제거한 뒤 각 지점 사이의 거리의 최솟값 중.. 더보기
[프로그래머스/JAVA] 고득점Kit > 동적계획법(Dynamic Programming) > 도둑질 (by 다알쥐AI) [도둑질] 고득점Kit > 동적계획법(Dynamic Programming) > 도둑질  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다.각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 두 집을 털면 경보가 울립니다.각 집에 있는 돈이 담긴 배열 money가 주어질 때, 도둑이 훔칠 수 있는 돈의 최댓값을 return 하도록 solution 함수를 작성하세요. 제한사항이 마을에 있는 집은 3개 이상 1,000,000개 이하입니다.money 배열의 각 원소는 0 이상 1,000 이하인 정수입니다.입출력 예[간단설명]도둑이 연속된 집이 아닌 돈을 훔.. 더보기
[프로그래머스/JAVA] 고득점Kit > 동적계획법(Dynamic Programming) > 등굣길 (by 다알쥐AI) [등굣길] 고득점Kit > 동적계획법(Dynamic Programming) > 등굣길 ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※ [문제설명]더보기계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = 4, n = 3 인 경우입니다.가장 왼쪽 위, 즉 집이 있는 곳의 좌표는 (1, 1)로 나타내고 가장 오른쪽 아래, 즉 학교가 있는 곳의 좌표는 (m, n)으로 나타냅니다. 격자의 크기 m, n과 물이 잠긴 지역의 좌표를 담은 2차원 배열 puddles이 매개변수로 주어집니다. 오른쪽과 아래쪽으로만 움직여 집에서 학교까지 갈 수 있는 최단경로의 개수.. 더보기
[프로그래머스/JAVA] 고득점Kit > 동적계획법(Dynamic Programming) > 정수 삼각형 (by 다알쥐AI) [ 정수 삼각형 ] 고득점Kit > 동적계획법(Dynamic Programming) > 정수 삼각형  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 제한사항삼각형의 높이는 1 이상 500 이하입니다.삼각형을 이루고 있는 숫자는 0 이상 9,999 이하의 정수입니다... 더보기
[프로그래머스/JAVA] 고득점Kit > 동적계획법(Dynamic Programming) > N으로 표현 (by 다알쥐AI) 고득점Kit > 동적계획법(Dynamic Programming) > N으로 표현  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기아래와 같이 5와 사칙연산만으로 12를 표현할 수 있습니다. 12 = 5 + 5 + (5 / 5) + (5 / 5)12 = 55 / 5 + 5 / 512 = (55 + 5) / 55를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4입니다.이처럼 숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현 할 수 있는 방법 중 N 사용횟수의 최솟값을 return 하도록 solution 함수를 작성하세요.  제한사항N은 1 이상 9 이하입니다.number는 1 이상 32,000 이하입니다.수식에는 괄호와 사칙연산만 가능하.. 더보기
[프로그래머스/JAVA] 고득점Kit > 탐욕법(Greedy) > 섬 연결하기 (by 다알쥐AI) 고득점Kit > 탐욕법(Greedy) > 섬 연결하기  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기n개의 섬 사이에 다리를 건설하는 비용(costs)이 주어질 때, 최소의 비용으로 모든 섬이 서로 통행 가능하도록 만들 때 필요한 최소 비용을 return 하도록 solution을 완성하세요. 다리를 여러 번 건너더라도, 도달할 수만 있으면 통행 가능하다고 봅니다. 예를 들어 A 섬과 B 섬 사이에 다리가 있고, B 섬과 C 섬 사이에 다리가 있으면 A 섬과 C 섬은 서로 통행 가능합니다. 제한사항섬의 개수 n은 1 이상 100 이하입니다.costs의 길이는 ((n-1) * n) / 2이하입니다.임의의 i에 대해, costs[i][0] 와 costs[i] [1]에는 다리가 연.. 더보기

728x90