https://www.acmicpc.net/problem/32403
코드설명
구현(Implementation)을 활용합니다.
각 숫자별로 우로 1씩, 좌로 1씩 움직이며 나눠진다면 해당 값으로 해당 주기에 맞추어서 처리될 수 있습니다.
1씩 움직이게 하면서 가장 가까운값이 나눠진다면, 해당값이 답이겠지요.
코드
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.StringTokenizer; public class Main { static int N, M, S, P, A, B, X, L, R, C, n, k, m, l, K, D, T, H, W; static int answer = 0; static int[] arr = new int[1001]; public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); N = Integer.parseInt(st.nextToken()); T = Integer.parseInt(st.nextToken()); st = new StringTokenizer(br.readLine()); for(int i=0; i<N; i++) { arr[i] = Integer.parseInt(st.nextToken()); answer += BFS(arr[i], T); } System.out.println(answer); } static int BFS(int s, int target) { int toLeft = s; int toRight = s; int cnt = 0; if(target % s == 0) { return cnt; } for(int i=0; ;i++) { toLeft += 1; toRight -= 1; cnt += 1; if(target % toLeft == 0) { return cnt; } if(target % toRight == 0) { return cnt; } } } }
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 11899 괄호 끼워넣기 - 스택(Stack) JAVA (0) | 2024.10.09 |
---|---|
[백준] 3568 iSharp - 문자열(String) + 파싱(Parsing) JAVA (0) | 2024.10.08 |
[백준] 2852 NBA 농구 - 문자열(String) + 정렬(Sort) JAVA (0) | 2024.10.08 |
[백준] 3187 양치기 꿍 - BFS(넓이우선탐색) JAVA (0) | 2024.10.04 |
[백준] 3184 양 - BFS(넓이우선탐색) JAVA (0) | 2024.10.04 |