본문 바로가기

728x90

코딩

[프로그래머스/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]에는 다리가 연.. 더보기
[프로그래머스/JAVA] 고득점Kit > 탐욕법(Greedy) > 구명보트 (by 다알쥐AI) 고득점Kit > 탐욕법(Greedy) > 구명보트  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 50kg]이고 구명보트의 무게 제한이 100kg이라면 2번째 사람과 4번째 사람은 같이 탈 수 있지만 1번째 사람과 3번째 사람의 무게의 합은 150kg이므로 구명보트의 무게 제한을 초과하여 같이 탈 수 없습니다. 구명보트를 최대한 적게 사용하여 모든 사람을 구출하려고 합니다.사람들의 몸무게를 담은 배열 people과 구명보트의 무게 제한 limit가 매개변수로 주어질 때,.. 더보기
[프로그래머스/JAVA] 고득점Kit > 탐욕법(Greedy) > 조이스틱 (by 다알쥐AI) 고득점Kit > 탐욕법(Greedy) > 조이스틱  ※ 주의 : 문제풀이 방법은 다양합니다. 참고만 해주세요 ※[문제설명]더보기조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다.ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다.▲ - 다음 알파벳▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로)◀ - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서)▶ - 커서를 오른쪽으로 이동 (마지막 위치에서 오른쪽으로 이동하면 첫 번째 문자에 커서) 예를 들어 아래의 방법으로 "JAZ"를 만들 수 있습니다.- 첫 번째 위치에서 조이스틱을 위로 9번 조작하여 J를 완성합니다.- 조이스틱을 왼쪽으.. 더보기

728x90