본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q1807 : 우박수 길이

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q1807 : 우박수 길이 (3n+1) (small) (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

두 자연수 a, b가 공백으로 분리되어 입력된다. ( 1 <= a <= b <= 10,000 )

출력

a에서 b사이에 길이가 가장긴 우박수와 그 길이를 출력한다. 만약 가장 긴 수가 두 개이상인 경우, 작은 숫자를 출력하시오.

예시

  • 입력 : 1 10
  • 출력 : 9 20

Solution (풀이)

  • 풀이 : 메모리 11268, 시간 : 71
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 first = Integer.parseInt(st.nextToken());
        int end = Integer.parseInt(st.nextToken());

        int max = 0;
        int count = 0;
        for (int i=first; i<=end; i++) {
            int a = 0;
            int b = 1;
            int temp = i;

            while(temp!=1) {
                if (temp%2==0) {
                    temp = temp/2;
                } else {
                    temp=3*temp+1;
                }

                b++;
            }
            a = i;

            if (count<b) {
                max = a;
                count = b;
            }
        }

        System.out.println(max + " " + count);

    }

}

Ranking(순위)

반응형