본문 바로가기
알고리즘/PROGRAMMERS

[프로그래머스] 약수의 개수와 덧셈 (C언어)

by kyeee2 2022. 8. 29.

[월간 코드 챌린지 시즌2 - 약수의 개수와 덧셈]

난이도: Level 1

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


[아이디어]

약수의 개수가 짝수인지 홀수인지를 체크해주는 것이 가장 핵심이라고 생각했다.

약수의 개수가 홀수이기 위해서는 해당 숫자가 제곱수여야한다. 예를 들며녀 4의 약수는 1, 2, 4 -> 3개이고, 2 * 2 = 4 제곱수이다.

이 점을 활용하여 제곱수라면 홀수 아니라면 짝수로 판단하여 풀어주었다.


[C 코드]

방법1

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

// 현재 숫자의 약수의 개수가 홀수인지 판단
bool isOdd(int n) {
    int i = 1;
    while(i * i < n) {
        i++;
    }
    
    if(i * i == n) return true;
    else           return false;
}

int solution(int left, int right) {
    int answer = 0;
    
    for(int n = left; n <= right; n++) {
        if(isOdd(n)) answer -= n;
        else        answer += n;
    }
    
    return answer;
}

'알고리즘 > PROGRAMMERS' 카테고리의 다른 글

[프로그래머스] 없는 숫자 더하기 (C언어)  (0) 2022.08.29

댓글