본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1936 : 두 노드간의 거리

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1936 : [재귀함수] 두 노드간의 거리 (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

두 노드 a,b가 입력된다.(1<=a,b<=2,100,000,000)

출력

두 노드 a,b의 거리를 출력한다.

예시

  • 입력 : 3 4
  • 출력 : 3

Solution (풀이)

  • 풀이 : 메모리 11164, 시간 : 67
public class Answer1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());

        System.out.println(loop(a, b));
    }

    public static int loop(int a, int b) {
        if (a==b) { // 거리가 같을 때에는 0을 리턴
            return 0;
        } else if(a>b) { // a가 더 큰 경우에는 a를 2로 나누고 +1
            return loop(a/2, b)+1;
        } else {
            return loop(a,b/2)+1; // b가 더 큰 경우에는 b를 2로 나눈 결과에 1을 더한다.
        }
    }

}

Ranking(순위)

반응형