C언어 9제] 깊이 우선 탐색(DFS) 이용한 프로그램 구현하기
출처] 반크 독도포스터 깊이 우선 탐색이란? (참고 : DFS) 문제] 길이 8m의 막대를 3명이서 1m단위로 자를려고 할 때 몇 번이면 1m 막대가 될 수 있는지 프로그램을 작성하시오.(단, 하나의 막대는 한 사람만 자를 수 있다.) 8 -> 4, 4 로 자른다 1명 4, 4 -> 2, 2, 2, 2로 자른다 2명 2,2,2 -> 1,1,1,1,1,1로 자른다 3명 2 -> 1,1로 자른다 1명 그러므로 총 4번을 자르면 8m 막대가 1m막대로 만들수 있게 된다. 입력 예시1] 20, 3 출력 예시1] 8 입력 예시1] 100, 5 출력 예시1] 22 참고풀이] #include //x : 최종 막대기 총수 //y : 막대기를 자를 인원수 //count : 현재 자를 막대기 개수 int Jarki_DFS..
2021. 9. 30.
C언어 6제] 2021년 한국정보올림피아드 1차대회 초등부 2. 나누기
출처 : 반크 카드뉴스 문제] N개의 정수 수열 A1, A2,..., AN이 주어진다. 수열을 각각이 연속된 네 부분으로 나누려고 한다. 단, 각 부분은 최소 하나의 수를 포함해야 한다. 또 각 부분의 합은 모두 같아야 한다. 즉 어떤 i, j, k(1≤i<j<k<N)에 대해서 [A1,...,Ai], [Ai+1,...,Aj], [Aj+1,...Ak], [Ak+1,...AN]으로 나눈다. 예를 들어 주어진 수열이 4, -1, 2, 1, -3, 1, 2, 2, 1, 3이라고 하자. 이 수열을 아래과 같이 나누면 각 부분의 합이 달라서 허용되는 형태가 아니다. [4, -1, 2], [1, -3, 1, 2], [2, 1], [3] 아래와 같이 나눈 경우 각 부분의 합이 모두 같다. [4, -1], [2, 1],..
2021. 9. 14.