https://www.acmicpc.net/problem/1057
[풀이]
- 브루트 포스 유형의 문제이지만, 단순하게 반복문을 이용하여 각 라운드에 대한 코드를 구현하면 풀 수있었습니다.
- 김지민과 임한수가 붙게 되는 라운드 번호를 출력하면 되므로, 한 라운드가 진행할 때마다 새로 부여받는 번호에 대해서 비교를 하면 되었습니다.
- 부여받는 번호에서 1을 뺀 후, 2를 나눈 몫은 만약 붙게 될경우에는 같은 몫을 반환하며 그렇지 않을 경우에는 상이한 몫을 반환합니다.
- 이러한 점을 이용해서 몫이 다를 때까지 반복하면 됩니다.
[코드]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int N, x, y, answer;
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());
x = Integer.parseInt(st.nextToken());
y = Integer.parseInt(st.nextToken());
answer = 1;
x -= 1;
y -= 1;
while (x / 2 != y / 2) {
answer += 1;
x /= 2;
y /= 2;
}
System.out.println(answer);
}
}
'Algorithm > 백준' 카테고리의 다른 글
백준 1037번 : 약수(Java) (0) | 2021.09.19 |
---|---|
백준 1759번 : 암호 만들기(Java) (0) | 2021.09.19 |
백준 1535번 : 안녕(Java) (0) | 2021.09.18 |
0915 TIL (오늘 하루 정리하기) (0) | 2021.09.15 |
백준 2548번 : 대표 자연수(Java) (0) | 2021.09.11 |