Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- AccessToken
- springsecurity
- S3
- 우아한 테크러닝
- @transactional
- aop
- spring DI
- OptimisticLock
- 멀티모듈 테스트컨테이너
- 낙관적 락 롤백
- ObjectOptimisticLockingFailureException
- Invalid property 'principal.username' of bean class
- Spring Cloud Gateway
- 낙관적 락 재시도
- TestContainers
- redissonlock aop
- 알고리즘
- java
- DI
- ObjectOptimisticLockingFailureException 처리
- jpa
- kotest testcontainers
- interface
- RefreshToken
- multimodule testcontainers
- 형상관리
- spring aop
- 소수찾기 java
- 백준
- netty
Archives
- Today
- Total
조급하면 모래성이 될뿐
[프로그래머스]숫자의 표현 본문
문제링크 : https://programmers.co.kr/learn/courses/30/lessons/12924
나의 풀이
풀이자체는 어렵지 않았다.
- 시작 값: i ( i는 1부터 n까지 )
- n보다 작으면 계속 더해간다.
- n보다 크거나 같은경우 while을 빠져나온다.
- 빠져나왔을 때, sum이 n과 같다면 answer++해준다.
코드
public static int solution(int n) {
int answer = 0;
for ( int i = 1 ; i <= n ; i ++ ) {
int sum = 0 ;
int start = i ;
while ( sum < n && start <= n ) {
sum+=start;
start++;
}
if ( sum == n ) answer++;
}
return answer;
}
public int solution2(int n) {
int answer = 0;
for (int i = 1; i <= n; i += 2) {
if (n % i == 0) {
answer++;
}
}
return answer;
}
후기
다른사람의 풀이를보는데.. 너무 신박했다..
풀이의 코드에 아래와 같은 댓글이 있었다...
"주어진 자연수를 연속된 자연수의 합으로 표현하는 방법의 수는 주어진 수의 홀수 약수의 개수와 같다라는 정수론 정리가 있습니다."
위 댓글에서 말씀하신 "정수론 정리"를 적용하여 코드로풀면 solution2가 된다...
주어진 자연수를 연속된 자연수의 합으로 표현하는 방법의 수는 주어진 수의 홀수 약수의 개수와 같다 ( 정수론 정리 )
기억하자..!
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스]행렬의 곱셈 (0) | 2020.01.07 |
---|---|
[프로그래머스] 캐시 (0) | 2020.01.05 |
[프로그래머스] 다음 큰 숫자 (0) | 2019.12.12 |
[프로그래머스] 올바른 괄호 (0) | 2019.12.12 |
[프로그래머스] 가장 큰 정사각형 찾기 (0) | 2019.12.12 |