[프로그래머스] 숫자의 표현 (JAVA)

·2023년 8월 9일
0

프로그래머스

목록 보기
55/59

📌 문제 설명

Finn은 요즘 수학 공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러 개라는 사실을 알게 되었습니다. 예를 들어 15는 다음과 같이 4가지로 표현할 수 있습니다.

  • 1 + 2 + 3 + 4 + 5 = 15
  • 4 + 5 + 6 = 15
  • 7 + 8 = 15
  • 15 = 15

자연수 n이 매개 변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해 주세요.

📌 제한 사항

  • n은 10,000 이하의 자연수 입니다.

📌 입출력 예

nresult
154

📌 코드

class Solution {
    public int solution(int n) {
        int answer = 0;
        for(int i= 1; i<=n; i++){
            int sum = 0;
            for(int j = i; ; j++){
                sum += j;
                if(sum == n){
                    answer++;
                    break;
                } else if(sum > n)
                    break;
            }
        }
        return answer;
    }
}

📌 문제 해결 과정

💡 자연수 1부터 시작해 n까지의 반복하는 for문을 하나 만들고 i부터 시작하는 반복문을 하나 만들어 i부터 차례대로 수를 sum에 더하도록 한다 sumn과 같아졌다면 answer을 1만큼 더해 주고 반복문을 탈출하고 다음 반복을 이어갈 수 있게 한다 만약 sumn보다 크다면 n을 만들 수 없다는 의미이므로 바로 반복문을 탈출해 다음 반복을 이어갈 수 있게 하였다

효율성 테스트 때문에 이중 반복문 통과될 수 있을까 조마조마했는데 다행히 통과가 되었다 🤩

profile
공부는 많은 양을 하진 않더라도 꾸준히 매일 하기

1개의 댓글

comment-user-thumbnail
2023년 8월 9일

즐겁게 읽었습니다. 유용한 정보 감사합니다.

답글 달기