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 | 29 | 30 | 31 |
Tags
- JSON
- buffer
- stream
- 알기쉬운 알고리즘
- 윤성우 열혈자료구조
- datastructure
- 이스케이프 문자
- 윤성우의 열혈 자료구조
- 이것이 자바다
- Stack
- C 언어 코딩 도장
- s
- Graph
- Selection Sorting
- list 컬렉션
- C programming
- coding test
- 메모리구조
- Algorithm
- Serialization
- 혼자 공부하는 C언어
- R
- insertion sort
Archives
- Today
- Total
Engineering Note
41. 연속된 자연수의 합 본문
it 취업을 위한 알고리즘 문제풀이
문제
코드1
코드1 함수화 작업
코드2
문제해결방법
- 문제를 해결하기위한 방법을 작게 세분화한다.
- 연속된 자연수의 합의 개수는 쉽게 구할수 있다.
- 이중 for문을 이용해서 N-1부터 내림차순으로 연속된 수의 합을 누적하여 구하고 누적된 값이 N일 경우 cnt를 증가시킨다.
- 연속된 자연수의 합을 구했을 때 출력방법을 고민한다.
- 누적 값이 N이 됐을때 이중 for문에서 사용된 j를 이용해서 현재의 j값 부터 j의 초기값 i까지 출력하면서 수식을 출력한다.
- 연속된 자연수의 합의 개수는 쉽게 구할수 있다.
- 수학적으로 해결하기
- 연속된 2개의 숫자의 합으로 N이 되려면
- 0 00 // 000 0000 0000 이렇게 15개가 있을 때 2명에게 나머지 12개를 분배해주는 때 똑같이 분배해준다고 생각하면 됨
- 두명은 각각 1개, 2개를 갖고 있음
- 나머지 12개를 2명에게 6개씩 똑같이 분배가 가능하다는 것은 2로 나누어 떨어진다는 의미이다.
- 연속된 숫자가 몇개인지 부터 접근하는 방식의 풀이이다.
- 예외 처리 조건은
- 연속된 숫자 5개 1/2/3/4/5 로 이미 15가 완성된다. 이때는 나머지가 0개이고 0개를 각각에게 주면 15가 완성되는데 그다음 연속된 숫자 6개로는 15가 넘어가므로 더이상 연속된 숫자로 주어진 N 15를 만들 수 없다.
'Problem Solving > Olympiad in Informatics' 카테고리의 다른 글
47. 봉우리 (0) | 2021.04.04 |
---|---|
39. 두 배열 합치기 (0) | 2021.03.01 |
31. 탄화수소 질량 (0) | 2021.02.18 |
29. 3의 개수는?(small) (0) | 2021.02.16 |
28. N!에서 0의 개수 (0) | 2021.02.13 |
Comments