뮁이의 개발새발

[JAVA] 백준 2635 수 이어가기 본문

Algorithm

[JAVA] 백준 2635 수 이어가기

뮁뮁이 2021. 8. 28. 16:54

하라는 대로 하고, 리스트를 사용해서 숫자를 추가해주면서 반복문 돌았다. 

이번에도 역시 한번 틀렸다고 나왔는데 ,

1을 입력하면 1 1 0 1이 나오면서 최대길이가 4가 나와야하는데, 그걸 신경 못썼었다. 반복문에 같거나 크다로 변경해서 해결했음

import java.io.IOException;
import java.util.LinkedList;
import java.util.Scanner;

public class bj2635 {
	public static void main(String[] args) throws IOException {
		Scanner sc = new Scanner(System.in);

		int num = sc.nextInt();

		int max = 0;

		LinkedList<Integer> maxlist = new LinkedList<Integer>();
		for (int i = 1; i <= num; i++) {
			LinkedList<Integer> list = new LinkedList<Integer>();
			list.add(num);
			// i 는 두번째 수
			int second = i;
			list.add(second);

			int newnum = num - i;
			while (true) {
				if (newnum < 0) {
					break;
				}
				list.add(newnum);

				newnum = list.get(list.size() - 2) - list.get(list.size() - 1);
			}
			if (max < list.size()) {
				max = list.size();
				maxlist = list;
			}
		}

		System.out.println(max);
		for (int i = 0; i < maxlist.size(); i++) {
			System.out.print(maxlist.get(i) + " ");
		}

	}
}
Comments