[Java] Lv.2 프로그래머스 숫자의 표현

rse·2023년 10월 6일
0

알고리즘

목록 보기
38/44

링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12924

설명

이중반복문을 사용해서 1부터 n까지 n에 해당하는 수가 있는지 확인하고, 2부터 n까지 또 확인하는 식으로 풀었다.

하지만 문제를 풀면서도 매우 비효율적이라고 생각했기에 풀고 다른 사람 코드를 봤더니 약수를 통해 문제를 푸는 방법이 있었다.

해당 코드도 첨부하겠다.

코드

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

약수를 통해 방식

class Solution {
    public int solution(int n) {
    int answer = 0;
    for (int i = 1; i <= n; i += 2) 
       if (n % i == 0) 
           answer++;

   return answer;
    }
}

홀수만 골라서 해당 수와 홀수를 나눈 나머지가 0 이라면. 약수라면 정답 개수를 올려준다.

profile
기록을 합시다

0개의 댓글