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.
C언어 3제] 2019년 한국정보올림피아드 1차대회 초등부 1번 - 막대기
문제] [유형3] 1번 - 막대기(100점) 모든 언어에 대해 시간 제한 1초, 메모리 제한 512MB입니다. 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 6, 9, 7, 6, 4, 6 이다. 일렬로 세워진 막대기를 오른쪽에서 보면 보이는 막대기가 있고 보이지 않는 막대기가 있다. 즉, 지금 보이는 막대기보다 뒤에 있고 높이가 높은 것이 보이게 된다. 예를 들어, 그림과 같은 경우엔 3개(6번, 3번, 2번)의 막대기가 보인다. N개의 막대기에 대한 높이 정보가 주어질 때, 오른쪽에서 보아서 몇 개가 보이는 지를 알아내는 프로그램을 작성하려고 한다. 입력형식 표..
2021. 7. 12.