728x90
코드만 궁금한 분은 링크
임의의 숫자가 하나 주어진다. 이 숫자를 임의의 자연수들의 합으로 나타낼 때 각각 다른 최대 몇개의 자연수들의 합으로 이 수를 나타낼 수 있을까?
어..어..어떻게풀지..! 라는 생각을 처음에 잠깐 할지 모르지만 조금만 생각해보면 쉬운 문제이다.
3을 생각해보자. 1+2 이렇게 두개로 나타낼 수 있다. 5를 생각해보자. 2+3으로 나타낼 수 있다. 이는 1+2+3에서 앞의 1을 뺀 값이다.
8을 생각해보자. 1+2+3+4는 10이라, 2가 더 크다. 그럼 여기에서 2를 빼보면 1 + 3+ 4로 나타낼 수 있다.
200을 생각해보자. 1+..20은 210이다. 그럼 10을 빼면 되니까 19개의 수로 나타낼 수 있다.
어.. 여기서 내가 하고싶은 말은, 일단 우리는 가능한 자연수 갯수의 최댓값을 구해야하고 반드시 1부터 값을 더해가야 한다.
그러다보면 값이 딱 맞는 경우가 생기고 - > 지금 수를 반환하면 됨
값이 우리가 원하는 값보다 큰 경우가 생긴다. 이 때에 그.. 값의 차이는 어차피 앞에서 카운트 한 적이 있는 숫자이기 때문에 이 때 그 수를 빼버리면 우리가 원하는 수를 만족하게 된다. - > 지금까지 카운트한 수 -1을 반환하면 된다.
728x90
'코딩테스트 > 백준' 카테고리의 다른 글
백준 3085번 사탕게임 풀이/해설/코드 (파이썬) 112ms풀이 /DFS (0) | 2021.10.03 |
---|---|
백준 1197번 최소 스패닝 트리 해설/풀이/코드 (파이썬) 시간 초과 해결하기..! (2) | 2021.10.02 |
백준 1806번 부분합 풀이/해설/코드 (파이썬) (0) | 2021.10.01 |
백준 1700번 멀티탭 스케줄링 문제 해설/코드 (파이썬) (0) | 2021.09.30 |
백준 2504번 괄호의 값 해설/풀이/코드 (파이썬) 테스트케이스 추가 요청하기 (0) | 2021.09.29 |