티스토리챌린지 3

[프로그래머스] 리코쳇 로봇 - JAVA 풀이

리코쳇 로봇문제 설명리코쳇 로봇이라는 보드게임이 있습니다.이 보드게임은 격자모양 게임판 위에서 말을 움직이는 게임으로, 시작 위치에서 출발한 뒤 목표 위치에 정확하게 멈추기 위해 최소 몇 번의 이동이 필요한지 말하는 게임입니다.이 게임에서 말의 이동은 현재 위치에서 상, 하, 좌, 우 중 한 방향으로 게임판 위의 장애물이나 게임판 가장자리까지 부딪힐 때까지 미끄러져 움직이는 것을 한 번의 이동으로 정의합니다.다음은 보드게임판을 나타낸 예시입니다. ("."은 빈 공간을, "R"은 로봇의 처음 위치를, "D"는 장애물의 위치를, "G"는 목표지점을 나타냅니다.)...D..R.D.G.......D.DD....D...D....이때 최소 움직임은 7번이며 "R" 위치에서 아래, 왼쪽, 위, 왼쪽, 아래, 오른쪽,..

알고리즘 2024.11.27

[BOJ-1806] 부분 합 - JAVA 풀이

부분합문제10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오.입력첫째 줄에 N (10 ≤ N 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다.출력첫째 줄에 구하고자 하는 최소의 길이를 출력한다. 만일 그러한 합을 만드는 것이 불가능하다면 0을 출력하면 된다.예제 입력10 155 1 3 5 10 7 4 9 2 8예제 출력2아이디어단순히 배열 순회하면서 일정부분의 합을 더해 비교하면 되겠지만 제한사항을 보아하니 브루트포스로는 시간초과다연속된 수들의 부분 에서 투포인터로 불필요한 연산을 쳐내는게 핵심이겠다S값과 부분의 합을 비교하면서 포인터를 ..

카테고리 없음 2024.11.25

[BOJ-2110] 공유기 설치 - JAVA 풀이

공유기 설치문제도현이의 집 N개가 수직선 위에 있다. 각각의 집의 좌표는 x1, ..., xN이고, 집 여러개가 같은 좌표를 가지는 일은 없다.도현이는 언제 어디서나 와이파이를 즐기기 위해서 집에 공유기 C개를 설치하려고 한다. 최대한 많은 곳에서 와이파이를 사용하려고 하기 때문에, 한 집에는 공유기를 하나만 설치할 수 있고, 가장 인접한 두 공유기 사이의 거리를 가능한 크게 하여 설치하려고 한다.C개의 공유기를 N개의 집에 적당히 설치해서, 가장 인접한 두 공유기 사이의 거리를 최대로 하는 프로그램을 작성하시오.출력첫째 줄에 가장 인접한 두 공유기 사이의 최대 거리를 출력한다.예제 입력5 312849예제 출력3힌트공유기를 1, 4, 8 또는 1, 4, 9에 설치하면 가장 인접한 두 공유기 사이의 거리는..

알고리즘 2024.11.23