본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q2028 : 삼각수

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q2028 : 삼각수 (자바, JAVA)입니다.

Intro

Question

문제 설명

입력

자연수 k가 입력된다. (k <= 555)

출력

약수의 개수가 처음으로 k개를 넘는 삼각수를 출력한다.

예시

  • 입력 : 5
  • 출력 : 28

Solution (풀이)

  • 풀이 : 메모리 14188, 시간 : 66
public class Answer1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int count = Integer.parseInt(br.readLine()); // 넘어야 하는 약수의 개수 입력 받기

        int index=1; // 
        int number=0;
        while(true) {
            number += index;
            int many = 0;
            for (int i=1; i<=number; i++) {
                if (number%i==0) {
                    if (i > (number/i)) break; // 나눈 몫이 본인보다 더 커지는 순간 break;

                    if ((number/i) == i) {
                        many += 1;    // 동일 수의 제곱일 때는 +1
                    } else {
                        many += 2;  // 서로 다른수의 곱 일때는 +2
                    }

                }
            }

            if (count<many) {
                System.out.println(number); // 입력받은 약수의 개수보다 많아질때 break;
                break;
            } else {
                index++;
            }
        }

    }
}

Ranking(순위)

반응형