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 |