프로그래머스 Lv.2 : 숫자의 표현

zeroequaltwo·2022년 11월 30일
0

코딩테스트

목록 보기
55/69

문제

프로그래머스 문제

내 풀이

  • 루프 한 번만 돌리려고 while문에 index를 2개 돌리는 방식을 취했다.
function solution(n) {
    let result = 1;
    if(n < 3) return result;
    if(n === 3) return 2;
    const arr = Array(n).fill(1).map((num, idx) => num + idx);
    
    let i = 0;
    let j = 1;
    let sum = arr[i] + arr[j];
    while(i <= Math.ceil(n/2)){
        j++;
        
        if(sum >= n){    
            if(sum === n){
                result++;
            }
            i++;
            j = i+1;
            sum = arr[i];
        }

        sum += arr[j];
    }
    
    return result;
}

개선점

  • 아래의 풀이는 숫자가 가진 홀수 약수의 개수가 정답이라고 하는데 잘 이해도 안 가고 나보고 설명하라고 하면 못 할 거 같아서 그냥 이런 풀이도 있구나까지만!
function expressions(num) {
    var answer = 0;

  for(var i=1; i<=num; i++) {
    if (num%i == 0 && i%2 == 1)
      answer++
  }
    return answer;
}
profile
나로 인해 0=2가 성립한다.

0개의 댓글