일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 2630번
- 18406번
- WebSecurityConfigurerAdapter
- 9251번
- 분할정복
- 11727번
- SecurityFilterChain
- 2163번
- 1057번
- caniuse
- 1992번
- python
- 백준
- 프로그래머스
- EBS어학당
- Java
- github
- 영어
- 11047번
- 1793번
- codility
- 알고리즘
- 입이 트이는 영어
- 파이썬
- BinaryGap
- 1759번
- programmers
- 권주현의 진짜 영국 영어
- Spring Security
- 신규아이디추천
Archives
- Today
- Total
철갑이의 이모저모
[백준] 1057번(토너먼트) with Java 본문
728x90
문제
풀이
토너먼트 표를 그려서 규칙을 찾아 보았다.
김지민의 경우 8 -> 4 -> 2 -> 1 번째로 즉, 현재번호/2 + 0 로 표현할 수 있다.
임한수의 경우 9 -> 5 -> 3 -> 1 번째로 즉, 현재번호/2 + 1 로 표현할 수 있다.
짝수일 때 홀수일 때로 나누기엔 복잡해지는 것 같아 둘 다 (현재번호/2 + 현재번호/2의 나머지) 로 처리하였다.
답
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n=sc.nextInt();
int z =sc.nextInt();
int h =sc.nextInt();
int cnt=0;
while(z != h) {
z = z/2 + z%2;
h = h/2 + h%2;
cnt++;
}
System.out.println(cnt);
}
}
728x90
'알고리즘' 카테고리의 다른 글
[백준] 2003번(수들의 합 2) with Python (2) | 2020.10.02 |
---|---|
[백준] 18406번(럭키 스트레이트) with Python (0) | 2020.10.02 |
[백준] 8958번(OX퀴즈) with Java (0) | 2020.09.27 |
[백준] 2525번(오븐시계) with Python (0) | 2020.09.27 |
[백준] 2163번(초콜릿 자르기) with Python (0) | 2020.09.27 |