https://school.programmers.co.kr/learn/courses/30/lessons/77884
레벨1
크게 어려운 문제는 아니지만 풀이법이 참신해서 올려본다.
약수의 개수가 짝수인지, 홀수 인지 구하는게 포인트인 문제이다.
나는 약수를 전부 찾아서 개수를 구했다.
그런데 모범답에서는 제곱근을 가지는 숫자는 약수가 홀수 이다. 왜냐하면 3의 경우 1,3 으로 한쌍이고 4의 경우 2의 제곱근이라 2 하나이기에 제곱근을 가지면 홀수 이다.
나의 코드
class Solution {
public int solution(int left, int right) {
int answer = 0;
for(int i =left;i<=right;i++){
int n = 0;
for (int j=1;j<=i;j++){
if(i%j==0){
n+=1;
}
}
if (n%2==0){
System.out.println("+");
System.out.println(i);
answer+=i;
}else{
System.out.println("-");
System.out.println(i);
answer-=i;
}
}
return answer;
}
}
예제코드
class Solution {
public int solution(int left, int right) {
int answer = 0;
for (int i=left;i<=right;i++) {
//제곱수인 경우 약수의 개수가 홀수
if (i % Math.sqrt(i) == 0) {
answer -= i;
}
//제곱수가 아닌 경우 약수의 개수가 짝수
else {
answer += i;
}
}
return answer;
}
}
'Problem Solving > 구현' 카테고리의 다른 글
자바 문법 - 진수 바꾸기 (3진법뒤집기) (0) | 2023.11.22 |
---|---|
비밀지도- 2진수 만들기 (1) | 2023.11.21 |
과제진행하기 (0) | 2023.10.17 |
JadenCase 문자열 만들기 (0) | 2023.09.17 |
짝수와 홀수 (0) | 2023.09.17 |