반응형
12924
https://school.programmers.co.kr/learn/courses/30/lessons/12924?language=java
풀이
📌연속된 자연수를 더해 n을 만들 때 연속된 자연수의 시작은 자신을 제외하면 n/2 를 초과할 수 없습니다.
예를 들어 n=6일 경우
3을 초과한 숫자는 연속된 수의 처음에 올 수 없습니다.
4부터는 무엇을 더해도 6을 초과하기 때문이죠
🎈예시1) 6, 15
📝코드
public class Solution {
public int solution(int n) {
int count = 0, sum = 0;
for (int i = 1; i < n / 2 + 1; i++) {
sum = 0;
int tmp = i;
while (sum < n) {
sum += tmp++;
if (sum == n) count++;
}
}
return count + 1;
}
}
🎈연속된 자연수의 시작은 n/2 를 초과할 수 없으므로 반복문은 n/2 까지만
🎈각 연속된 자연수의 시작을 구하고, 순서대로 더해 n과 같은 값이 나온다면 count에 추가
만약 n을 초과하면 반복문을 빠져나온다.
⚡️정확성 테스트
테스트 1 〉 | 통과 (0.01ms, 72.5MB) |
테스트 2 〉 | 통과 (0.05ms, 75.3MB) |
테스트 3 〉 | 통과 (0.08ms, 74.4MB) |
테스트 4 〉 | 통과 (0.07ms, 74.9MB) |
테스트 5 〉 | 통과 (0.03ms, 74.1MB) |
테스트 6 〉 | 통과 (0.02ms, 70.9MB) |
테스트 7 〉 | 통과 (0.08ms, 73.5MB) |
테스트 8 〉 | 통과 (0.05ms, 69.2MB) |
테스트 9 〉 | 통과 (0.02ms, 77.9MB) |
테스트 10 〉 | 통과 (0.07ms, 75.7MB) |
테스트 11 〉 | 통과 (0.08ms, 74.3MB) |
테스트 12 〉 | 통과 (0.05ms, 72MB) |
테스트 13 〉 | 통과 (0.06ms, 74.8MB) |
테스트 14 〉 | 통과 (0.04ms, 75.8MB) |
테스트 15 〉 | 통과 (0.02ms, 71.8MB) |
테스트 16 〉 | 통과 (0.02ms, 75.7MB) |
테스트 17 〉 | 통과 (0.02ms, 72.7MB) |
테스트 18 〉 | 통과 (0.02ms, 76.4MB) |
⚡️효율성 테스트
테스트 1 〉 | 통과 (1.16ms, 52MB) |
테스트 2 〉 | 통과 (0.66ms, 51.8MB) |
테스트 3 〉 | 통과 (0.76ms, 52.3MB) |
테스트 4 〉 | 통과 (0.81ms, 52.5MB) |
테스트 5 〉 | 통과 (0.85ms, 52.1MB) |
테스트 6 〉 | 통과 (0.97ms, 52MB) |
반응형
'Algorithm > Java' 카테고리의 다른 글
프로그래머스 - k진수에서 소수 개수 구하기 :: 2022 KAKAO BLIND RECRUITMENT (0) | 2022.08.17 |
---|---|
프로그래머스 - 줄 서는 방법 JAVA :: 12936 (1) | 2022.08.13 |
프로그래머스 - 주차 요금 계산 JAVA :: 2022 KAKAO BLIND RECRUITMENT (0) | 2022.08.01 |
프로그래머스 - 최댓값과 최솟값 JAVA (0) | 2022.08.01 |
프로그래머스 - 최솟값 만들기 JAVA :: 12941 (0) | 2022.08.01 |