말하는 컴공감자의 텃밭

프로그래머스 예상대진표 <4점> - 자바(java) 본문

알고리즘/Programmers - Java

프로그래머스 예상대진표 <4점> - 자바(java)

현콩 2023. 6. 28. 13:04
728x90

17년도 문제라 간단하다.

 

이진 탐색을 이용할까 하다가 그냥 while 돌리면 되겠는데..? 싶었다.

 

N의 크기는 중요하지않고, A와 B가 +1/2 되어 둘이 만나는 지점이 끝이니까 while에 조건을 주었다.

a와 b가 같다면 마지막 연산까지 마친 후 이므로 while( A != B)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import java.util.*;
 
class Solution {
    public int solution(int n, int a, int b) {
        int answer = 0;
 
        while (a != b) { // 결국엔 1번째와 2번째 연산이 마지막이므로
            a = (a + 1/ 2;
            b = (b + 1/ 2;
            answer++;
        }
 
        return answer;
    }
}
 
cs

 

이왜진.. 

이진탐색이나 다른 방법으로 푸신분이 있나 찾아봤는데 다들 이런방식으로 푸신듯 하다.

728x90
Comments