[월간 코드 챌린지 시즌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 |
---|
댓글