문제 내용은 입력으로 참가자 수와, 김지민, 임한수의 번호를 받은 뒤 둘이 대결하게 되는 순간을 출력해주면 된다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] arr = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();
int count = 0;
double kim = arr[1];
double lim = arr[2];
while (kim != lim) {
kim = Math.ceil(kim / 2);
lim = Math.ceil(lim / 2);
count++;
}
System.out.println(count);
}
}
결국 2명씩 줄어드는 구조기 때문에 전체 참가자 수는 딱히 생각할 필요가 없고, 입력받은 김지민과 임한수 를 /2로 계속 나누면서 소수점 버림을 방지하기 위해 나누고 올림을 꼭 해주고 이후 수가 동일해지면 나눈 횟수를 출력해주면 끝이다.
Leave a Reply