[백준] 두수의 합 - Java 9024
·
PS/백준
https://www.acmicpc.net/problem/9024  투 포인터를 사용하여 문제를 풀었다. 키 포인트는 정렬 후 `p1`을 0번째 인덱스 `p2`를 마지막 인덱스로 잡은 뒤주어진 K값과의 절대값 차이의 최소값을 계속해서 기록해나간다. 만약, 최소값을 갱신하지 못하는 값이라면 절대값을 씌우지 않고 K에서 뺀 값이 음수면 `p1`을 증가시키고 양수면 `p2`를 감소시킨다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.HashMap;import java.util.Map;import java.util.Strin..
[백준] 진우의 민트초코우유 - Java 20208
·
PS/백준
https://www.acmicpc.net/problem/20208  브루트 포스 문제이다. 처음에는 그냥 좌표값을 1씩 증가시키면서 전체의 좌표를 돌았는데역시나 시간 초과가 발생했다.  따라서, 민트초코우유가 있는 장소를 담고 있는 리스트를 만들어 해당 좌표만 접근하도록 코드를 변경했다. 현재 `health`로 해당 좌표에 도달할 수 있다면 해당 부분에 관한 재귀를 돈다.이때, 현재 위치에서 출발지로 되돌아갈 수 있다면 해당 우유는 먹을 수 있기 때문에 그 경우 최대값을 갱신해줬다.   public class BOJ20208 { static int N, M, H; static int[][] grid; static boolean[] visited; static List mint; ..
[백준] 다이어트 - Java 19942
·
PS/백준
https://www.acmicpc.net/problem/19942   문제를 보자마자 재료를 고르는 경우의 수를 비트마스킹으로 풀면 되겠다는 생각을 했다. `3    public class BOJ19942 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); StringTokenizer st = new StringTokenizer(br.readLine()); int minDan = Inte..
[백준] 나무가 되고 싶다 - Java 32359
·
PS/백준
https://www.acmicpc.net/problem/32359   트리 및 재귀를 사용하여 풀 수 있는 문제이다. 포인트는 루트 노드인 1부터 시작해서 점차 트리를 진행해나가며 입력 받은 값이라면 `true`를 반환해 넘어가고그렇지 않은 경우는 계속 재귀를 진행하며 그 값이 최대값인 `2^60 - 1`에 도달하면 `false`를 반환한다. 이때, 계속해서 `result` 값을 증가시키며 `true`를 반환했을 때 유한 집합의 개수를 반환한다. public class BOJ32359 { static long max = (1L set; public static void main(String[] args) throws IOException { BufferedReader br = ..
[백준] 전시장 - Java 2515
·
PS/백준
https://www.acmicpc.net/problem/2515 백준의 전시장 문제이다. 처음에는 문제를 읽자마자 그리디 문제인가 라는 생각이 들어서 그리디로 접근하려고 보니 입력의 단위가 굉장히 컸다. 즉, 이걸 그리디로 생각하여 특정 규칙을 정해 반복문을 돌리기에는 시간 초과가 우려됐다. 그래서, 이진 탐색으로 접근을 하려 시도하였다. 접근을 하니 이분 탐색의 키 값으로 돌릴 만한 것이그림의 보이는 부분의 길이인 `S` 밖에 없었다. 그래서 최소값(left)으로 입력 받은 S를 정했고 가장 높은 값은 입력값중 가장 높은 `H`를 선택했다. 이렇게만 접근하니까 첫 번째 예제는 맞지만, 두 번째 예제에서 틀렸다. 그래서, 직접 그림을 그려보니 작성한 로직은 무조건 `mid`값 만큼 차이나면 그 값을 더..
[백준] 육각형 우리 속의 개미 - Java 17370
·
PS/백준
`완전 탐색` 문제인데 문제가 조금 신선하다. 맨 처음 이거 뭐 범위도 지정되어 있지 않아서, 어떻게 풀어야 하나 난감했는데이걸 좌표로 생각해서 접근하면 결국 N 50으로 잡은 다음 중간부터 시작해야겠다고 생각이 되어 그대로 풀었다. 그 부분이 확실하지 않은 미지의 영역 느낌이라 좀 무서웠지만,그렇게 놓고 진행하니까 생각보다 쉽게 풀렸다. 6방향으로 진행이 가능하며 해당 방향으로 진행했을 때 다음 방향은 2개로 좁혀지므로,방향에 따른 진행방향을 `DFS`로 접근하여 풀었다. import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { static boolean[][..