티스토리 뷰
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ left ≤ right ≤ 1,000
입출력 예
leftrightresult
13 | 17 | 43 |
24 | 27 | 52 |
입출력 예 설명
입출력 예 #1
- 다음 표는 13부터 17까지의 수들의 약수를 모두 나타낸 것입니다.
수약수약수의 개수
13 | 1, 13 | 2 |
14 | 1, 2, 7, 14 | 4 |
15 | 1, 3, 5, 15 | 4 |
16 | 1, 2, 4, 8, 16 | 5 |
17 | 1, 17 | 2 |
- 따라서, 13 + 14 + 15 - 16 + 17 = 43을 return 해야 합니다.
입출력 예 #2
- 다음 표는 24부터 27까지의 수들의 약수를 모두 나타낸 것입니다.
수약수약수의 개수
24 | 1, 2, 3, 4, 6, 8, 12, 24 | 8 |
25 | 1, 5, 25 | 3 |
26 | 1, 2, 13, 26 | 4 |
27 | 1, 3, 9, 27 | 4 |
- 따라서, 24 - 25 + 26 + 27 = 52를 return 해야 합니다.
코드
class Solution {
public int solution(int left, int right) {
int answer = 0;
int count = 0;
int num=left;
do{
for(int n =num ; n>=1 ;n--){
if(num%n ==0){
count++;
}
}
if (count %2 ==0){
answer += num;
}else{
answer -=num;
}
//System.out.println("num: "+num);
//System.out.println("count: "+count);
num++;
count =0;
}while(num<=right);
return answer;
}
}
오랜만에 프로그래머스를 다시 풀어보는데 자력으로 술술 풀려서 기분이 좋았다.
약수 갯수를 count로 저장하여 count가 짝수일시 현재 숫자를 더하고
count가 홀수일시 현재 숫자를 빼주며
현재 숫자 num을 증가시키며 right와 같은 숫자가 되면 반복문이 끝내도록 했다.
이렇게 써놓으니 굉장히 쉬운 문제를 풀었구나 싶었다.
'프로그래머스 문제' 카테고리의 다른 글
[프로그래머스]괄호 회전하기 (0) | 2022.02.28 |
---|---|
[프로그래머스]오픈채팅방 (0) | 2022.02.28 |
[프로그래머스] [1차] 비밀지도 (0) | 2021.07.06 |
[프로그래머스] 크레인 인형뽑기 (java) (0) | 2021.06.29 |
[프로그래머스](카카오 인턴) 키패드 누르기 (java) (0) | 2021.06.24 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- scriptlet
- pageContext
- id
- forward
- Margin
- 자격증
- link href
- Expression
- application
- 독학
- 정보산업처리기사
- 정처산기
- div
- this.
- padding
- session
- span
- 합격
- request
- Redirect
- getParameter
- NAV
- dl
- 정처기
- RequestDispatcher
- Declaration
- 실기
- jsp
- CLASS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
글 보관함