2022 KOI 1교시 고등부 풀이 정리

이 문서는 2022 - 고등부 기출문제를 바탕으로, 고등학생 기준에서 다시 읽기 쉽게 정리한 학습용 풀이 노트입니다. 원본은 정답 PDF이므로, 계산형은 논리를 보강했고 구성형은 정답 절차를 왜 그렇게 잡는지 중심으로 설명했습니다.

1. 달리기

문제 한눈에 보기

다섯 사람의 순위 조건에서 3등이 누구인지 판정하는 문제입니다.

답

A

핵심 개념

전순서를 다 찾지 않아도, 위아래에 반드시 놓이는 사람 수만 세면 됩니다.

왜 이 생각을 먼저 해야 하는지

조건이 적은 순위 문제는 완전 탐색보다 “이 사람 위에 몇 명, 아래에 몇 명”이 더 직접적입니다.

단계별 풀이

  1. B보다 순위가 낮은 사람은 없다이므로 B는 최하위 등입니다.
  2. E는 A와 B 사이에 있으므로 A보다 낮고 B보다는 높습니다.
  3. 또 A는 C보다 낮고, D는 A보다 높습니다.
  4. 따라서 A 위에 C, D 두 명, 아래에 E, B 두 명이 존재합니다.
  5. 그래서 A는 정확히 등입니다.

헷갈리기 쉬운 점

이 문제의 “순위가 낮다”는 더 못한 등수, 즉 숫자가 더 큰 쪽입니다.

2. 거스름돈

문제 한눈에 보기

7원, 9원, 11원 동전으로 원 이상 모든 정수를 만들 수 있게 하는 최소 를 구하는 문제입니다.

답

핵심 개념

가장 작은 동전이 7원이므로, 7개 연속 정수를 만들 수 있으면 그 이후는 전부 만들 수 있습니다.

왜 이 생각을 먼저 해야 하는지

무한히 많은 금액을 직접 검사할 수는 없습니다. 연속 구간을 하나 확보하는 것이 핵심입니다.

단계별 풀이

  1. , ,
  2. 따라서 부터 까지 7개 연속 정수를 만들 수 있습니다.
  3. 여기에 7원 동전을 계속 더하면 이상도 모두 표현됩니다.
  4. 한편 은 만들 수 없으므로 최소 시작점은 입니다.

헷갈리기 쉬운 점

연속 구간의 시작 바로 아래 수가 표현 불가능한지도 확인해야 최소값이 됩니다.

3. 블록 쌓기

문제 한눈에 보기

세 직육면체 블록을 회전시켜 쌓을 때 가능한 최대 높이를 구하는 문제입니다.

답

핵심 개념

각 블록의 회전 상태를 “밑면 2변 + 높이”로 바꿔 보고, 밑면 포함관계를 만족하는 순서를 찾으면 됩니다.

왜 이 생각을 먼저 해야 하는지

직육면체를 통째로 보는 것보다 가능한 orientation들을 후보 상태로 나누는 편이 훨씬 간단합니다.

단계별 풀이

  1. 는 높이 , 밑면 로 둘 수 있습니다.
  2. 은 높이 , 밑면 로 둘 수 있습니다.
  3. 는 높이 , 밑면 로 둘 수 있습니다.
  4. 밑면 조건 가 모두 성립합니다.
  5. 따라서 총 높이 이 가능합니다.
  6. 이보다 높게 쌓으려면 가장 큰 높이값들을 모두 세워야 하는데, 그러면 밑면 포함관계가 깨져 불가능합니다.

헷갈리기 쉬운 점

한 블록의 가장 큰 변을 높이로 세우는 선택이 다른 블록의 배치를 막을 수 있습니다.

4. 점 잇기

문제 한눈에 보기

원 위의 8점을 4쌍으로 짝지어 선분으로 이을 때, 선분들이 서로 교차하지 않게 하는 방법 수를 구하는 문제입니다.

답

핵심 개념

교차하지 않는 완전 매칭의 개수는 Catalan 수입니다.

왜 이 생각을 먼저 해야 하는지

한 점이 누구와 연결되는지를 정하면 내부와 외부가 독립된 같은 형태의 작은 문제로 나뉩니다.

단계별 풀이

  1. 8점을 원 둘레 순서대로 부터 이라 합시다.
  2. 점 이 어떤 점 2k와 연결되면, 그 안쪽과 바깥쪽은 각각 교차 없는 같은 문제로 분리됩니다.
  3. 따라서 개수 은
    를 만족하는 Catalan 수가 됩니다.
  4. 일 때
    입니다.

헷갈리기 쉬운 점

단순한 짝짓기 수 이 아닙니다. 교차 금지 조건 때문에 훨씬 작아집니다.

5. 구슬 뽑기

문제 한눈에 보기

4개의 상자 중 하나에서 구슬을 뽑았는데 첫 구슬이 검정이었습니다. 같은 상자에서 하나 더 뽑을 때 검정일 확률을 묻는 문제입니다.

답

핵심 개념

첫 구슬이 검정이라는 정보로 상자에 대한 확률이 바뀌므로, 조건부확률을 써야 합니다.

왜 이 생각을 먼저 해야 하는지

상자를 균등하게 고른 뒤 검정을 봤다면, 검정 구슬이 많은 상자일수록 더 가능성이 커집니다.

단계별 풀이

  1. 그림의 상자 구성은 BBB, BBW, BWW, WWW 꼴로 읽을 수 있습니다.
  2. 첫 구슬이 검정일 확률은 각각 , , , 입니다.
  3. 따라서 “검정을 봤다”는 조건 아래 상자 가중치는 3:2:1:0으로 바뀝니다.
  4. 각 상자에서 두 번째도 검정일 확률은 , , , 입니다.
  5. 조건부확률은
    입니다.

헷갈리기 쉬운 점

처음에 상자를 균등하게 골랐다고 해서, 첫 검정을 본 뒤에도 상자가 균등하다고 보면 안 됩니다.

6. 막대기 세우기

문제 한눈에 보기

높이 1부터 6까지 막대를 일렬로 세울 때, 왼쪽에서 3개, 오른쪽에서 2개가 보이게 하는 배열 수를 구하는 문제입니다.

답

핵심 개념

가장 큰 막대를 삽입하는 점화식
를 씁니다.

왜 이 생각을 먼저 해야 하는지

가장 큰 막대는 무조건 보이므로, 어디에 놓이는지가 왼쪽/오른쪽 가시 개수 변화를 정확히 결정합니다.

단계별 풀이

  1. 를 조건을 만족하는 배열 수라 둡니다.
  2. 최대 높이 이 맨 왼쪽이면 왼쪽에서 보이는 수가 하나 늘어 입니다.
  3. 맨 오른쪽이면 입니다.
  4. 가운데 곳 중 하나면 가시 개수는 그대로여서 입니다.
  5. 따라서
    입니다.
  6. 값은 각각 이므로
    입니다.

헷갈리기 쉬운 점

가장 큰 막대가 가운데 들어가면 양쪽 가시 개수가 둘 다 그대로라는 점이 핵심입니다.

7. 세 수의 곱

문제 한눈에 보기

수열에서 세 항을 골라 곱한 값의 최댓값을 구하는 문제입니다.

답

핵심 개념

최대 후보는 큰 양수 세 개와 작은 음수 두 개 + 큰 양수 하나입니다.

왜 이 생각을 먼저 해야 하는지

부호가 섞인 곱의 최대는 보통 “절댓값 큰 음수 둘”을 함께 써야 나옵니다.

단계별 풀이

  1. 양수 셋 최대는 입니다.
  2. 음수 둘은 이 가장 유리합니다.
  3. 여기에 최대 양수 을 곱하면 입니다.
  4. 따라서 최댓값은 입니다.

헷갈리기 쉬운 점

가장 큰 수 세 개만 곱하는 방식은 음수 두 개의 효과를 놓칩니다.

8. 2310

문제 한눈에 보기

, 인 양의 정수 삼쌍 개수를 묻는 문제입니다.

답

핵심 개념

은 서로 다른 소수 5개의 곱이므로, 각 소수를 중 어디에 배정할지만 생각하면 됩니다.

왜 이 생각을 먼저 해야 하는지

소수 거듭제곱이 없어서 경우 분류가 매우 단순해집니다.

단계별 풀이

  1. 순서를 고려한 삼쌍 를 먼저 셉니다.
  2. 다섯 소수 각각을 중 하나에 배정하는 방법은 입니다.
  3. 이 중 두 수가 같아지는 경우는 의 순열 3개뿐입니다.
  4. 따라서 서로 다른 세 수를 갖는 순서 있는 삼쌍은 개입니다.
  5. 각 증가삼쌍은 6개의 순열을 가지므로 정답은 입니다.

헷갈리기 쉬운 점

소수를 배정하는 순간 곱이 정해지므로, 별도의 계수 분배는 없습니다.

9. 초콜릿

문제 한눈에 보기

14칸 초콜릿을 길이 2 또는 3의 묶음으로 잘라 판매할 때 얻는 금액의 최댓값을 구하는 문제입니다.

답

핵심 개념

각 위치까지의 최적값을 저장하는 1차원 DP로 해결할 수 있습니다.

왜 이 생각을 먼저 해야 하는지

구간 길이가 2, 3뿐이라서 앞에서부터 자르는 결정이 자연스러운 점화식으로 이어집니다.

단계별 풀이

  1. 를 앞에서 칸까지 포장했을 때 최대 수익이라고 둡니다.
  2. 칸 뒤에서 2칸 묶음을 자르거나, 칸 뒤에서 3칸 묶음을 자르는 두 경우를 비교합니다.
  3. 단, 해당 묶음에 불량품이 2개 이상이면 그 전이는 금지합니다.
  4. 그림의 불량 위치를 반영해 끝까지 계산하면 입니다.

헷갈리기 쉬운 점

3칸 정상 묶음의 단가가 가장 높아 보여도, 불량 위치 때문에 항상 최적은 아닙니다.

10. 순열 거듭제곱

문제 한눈에 보기

순열 의 거듭제곱 이 주어진 순열이 되게 하는 최소 을 구하는 문제입니다.

답

핵심 개념

순열은 사이클 분해 후, 각 사이클에서 “몇 칸 회전했는가”를 합동식으로 쓰면 됩니다.

왜 이 생각을 먼저 해야 하는지

순열 합성은 전체로 보면 복잡하지만, 사이클 안에서는 단순한 회전입니다.

단계별 풀이

  1. 를 사이클 분해하면 길이가 인 사이클들로 나뉩니다.
  2. 목표 순열을 같은 사이클 위에서 비교하면, 각 사이클에서 필요한 회전 수가 다음과 같이 나옵니다.
  3. 길이 4 사이클에서는 .
  4. 길이 5, 2 사이클에서는 , .
  5. 길이 3 사이클에서는 고정되어 있으므로 입니다.
  6. 이를 동시에 만족하는 최소 양의 정수는 입니다.

헷갈리기 쉬운 점

순열 전체를 한 번에 거듭제곱하지 말고, 사이클마다 따로 보면 선형 합동식 문제가 됩니다.

11. 동전 게임

문제 한눈에 보기

동전을 1,2,3칸 옮기되 7의 배수 칸에는 놓지 못할 때, 목표 에서의 승자를 판정하는 문제입니다.

답

영희, 철수, 영희

핵심 개념

뒤에서부터 winning/losing 상태를 분류하는 DP입니다.

왜 이 생각을 먼저 해야 하는지

현재 칸의 승패는 다음에 갈 수 있는 칸들의 승패만 보면 정해집니다.

단계별 풀이

  1. 미만의 칸에 대해, 다음 한 번의 이동으로 이기는 칸이나 losing 칸으로 보낼 수 있으면 winning으로 둡니다.
  2. 금지 칸인 7의 배수는 중간 도착지에서 제외합니다.
  3. 이 DP를 적용하면
  4. 에서는 시작칸 이 winning,
  5. 에서는 시작칸 이 losing,
  6. 에서는 다시 winning이 됩니다.
  7. 따라서 승자는 영희, 철수, 영희입니다.

헷갈리기 쉬운 점

이상에 처음 도달하는 순간 즉시 승리이므로, 이후 칸들은 따로 상태를 만들 필요가 없습니다.

12. 아이템 배치

문제 한눈에 보기

모든 시작-끝 경로가 정확히 한 개의 아이템만 지나가게 하는 아이템 배치 수를 세는 문제입니다.

답

핵심 개념

아이템 집합은 DAG의 모든 경로와 정확히 한 번 만나는 단절면이어야 합니다.

왜 이 생각을 먼저 해야 하는지

경로 수가 매우 많으므로, 각 경로를 직접 세는 방식은 불가능합니다.

단계별 풀이

  1. 격자 이동을 DAG로 본 뒤, 시작에서 끝으로 가는 모든 경로를 생각합니다.
  2. 아이템 칸들의 집합이 모든 경로와 정확히 한 번 교차해야 합니다.
  3. 이런 집합은 서로 겹치지 않는 절단선들의 조합으로 이해할 수 있습니다.
  4. 막힌 칸을 반영해 가능한 절단선을 DP로 세면 총 가지가 나옵니다.

헷갈리기 쉬운 점

아이템을 하나도 못 줍는 경로도, 둘 이상 줍는 경로도 모두 불허입니다.

13. 한붓 그리기

문제 한눈에 보기

그래프에 간선 3개를 추가하여 오일러 회로를 만들고 실제 순회까지 제시하는 문제입니다.

답

정답 그림처럼 3개 간선을 추가하고, 예시 순서대로 돌면 된다.

핵심 개념

오일러 회로의 필요충분조건은 모든 정점 차수가 짝수인 연결 그래프라는 점입니다.

왜 이 생각을 먼저 해야 하는지

어떤 간선을 더해야 하는지 판단하는 기준이 차수의 짝홀뿐이기 때문입니다.

단계별 풀이

  1. 원래 그래프의 홀수 차수 정점을 찾습니다.
  2. 정답 그림처럼 3개 간선을 추가해 이 홀수 차수 정점들을 짝수로 바꿉니다.
  3. 그러면 오일러 회로가 존재합니다.
  4. PDF의 번호 기준 순회

    는 모든 간선을 정확히 한 번씩 지나고 시작점으로 되돌아옵니다.

헷갈리기 쉬운 점

오일러 회로는 “간선”을 한 번씩 지나는 것이지 정점을 한 번씩 방문하는 것이 아닙니다.

14. 수열 만들기

문제 한눈에 보기

구간 덧셈만으로 목표 수열을 만드는 최소 작업 수를 구하는 문제입니다.

답

번

핵심 개념

막대그래프를 최소 개수의 직사각형 합으로 분해하는 문제로 볼 수 있습니다.

왜 이 생각을 먼저 해야 하는지

구간에 상수 하나를 더하는 연산은 막대그래프에서 가로 띠 하나를 더하는 것과 같기 때문입니다.

단계별 풀이

  1. 정답 자료의 10개 연산은
    , , , ,
  2. 그리고 , , , , 입니다.
  3. 이는 목표 막대그래프를 높이층별로 쪼갠 대표적인 분해입니다.
  4. 이 10개를 적용하면 정확히 목표 수열이 됩니다.

헷갈리기 쉬운 점

연산에 음수를 쓸 수 없으므로, 한 번 지나치게 올리면 되돌릴 수 없습니다.

15. 트리 순회

문제 한눈에 보기

트리 위에서 18번 이하 이동으로 최대한 많은 서로 다른 정점을 방문하는 문제입니다.

답

14개 정점을 방문하는 경로가 정답

핵심 개념

한 가지를 깊게 탐색한 뒤, 되돌아오는 비용 대비 새 정점 수가 큰 가지부터 고르는 것이 핵심입니다.

왜 이 생각을 먼저 해야 하는지

트리에는 사이클이 없어서 다른 가지로 가려면 반드시 공통 조상으로 복귀해야 합니다.

단계별 풀이

  1. 정답 경로는
  2. 이 경로는 총 18번 이동 안에서 정점 14개를 새로 방문합니다.
  3. 큰 가지들을 이어 붙이되, 불필요한 왕복을 최소화한 경로라고 볼 수 있습니다.

헷갈리기 쉬운 점

중복 방문은 허용되지만 점수는 늘지 않으므로, 왕복은 “다른 가지로 넘어가기 위한 비용”일 뿐입니다.

16. 돌무더기

문제 한눈에 보기

두 바구니 A, B에서 서로 다른 규칙으로 돌을 가져가는 게임에서 선플레이어의 승리 전략을 찾는 문제입니다.

답

PDF의 전략대로 두면 승리한다.

핵심 개념

한 바구니를 먼저 소진해 게임을 단순화한 뒤, 남은 한 바구니에서 마지막 수를 맞추는 전략입니다.

왜 이 생각을 먼저 해야 하는지

두 자원을 동시에 제어하려고 하면 복잡도가 급격히 올라갑니다.

단계별 풀이

  1. 정답 자료는 우선 B에서만 1개씩 가져가 B를 비우는 전략을 씁니다.
  2. 그다음 A만 남으면, 현재 A의 짝홀에 맞춰 첫 수를 조정합니다.
  3. 이후에는 상대가 A에서 1개밖에 못 가져가므로 마지막 돌을 내가 가져가게 흐름을 고정할 수 있습니다.

헷갈리기 쉬운 점

초반에 A까지 같이 건드리면 후반 짝홀 제어가 흐트러집니다.

17. 최대공약수

문제 한눈에 보기

주어진 여섯 연산만 써서 를 또는 로 바꾸는 문제입니다.

답

이진 최대공약수 알고리즘을 따르면 된다.

핵심 개념

허용 연산이 정확히 Stein algorithm의 연산 집합과 일치합니다.

왜 이 생각을 먼저 해야 하는지

나누기 2와 빼기만으로 gcd를 보존하며 줄이는 알고리즘이 이미 존재합니다.

단계별 풀이

  1. 공통 인수 를 먼저 떼어 냅니다.
  2. 이후 한쪽이 짝수면 그쪽만 로 나누어 홀수로 만듭니다.
  3. 둘 다 홀수이면 큰 쪽에서 작은 쪽을 뺍니다.
  4. 이 과정을 반복하면 결국 두 수가 같은 홀수 에 도달합니다.
  5. 마지막에 한쪽에서 다른 쪽을 빼 을 만든 뒤, 앞에서 떼어 둔 를 다시 복원하면 또는 가 됩니다.

헷갈리기 쉬운 점

중간에 값이 커지거나 작아지는 것보다 중요한 것은 gcd가 보존되는지입니다.

18. 거짓말

문제 한눈에 보기

“같다/다르다” 질문을 각 캐릭터에게 한 번씩만 해서 참/거짓 속성을 모두 복원하는 문제입니다.

답

PDF의 질문 배치와 응답 해석으로 유일하게 복원 가능하다.

핵심 개념

질문 결과를 이진값 관계식으로 바꾸면, 전체 속성은 선형 제약계처럼 복원됩니다.

왜 이 생각을 먼저 해야 하는지

거짓말쟁이의 답도 결국 “참값을 뒤집은 값”으로 표현되므로, 모두 0/1 관계식으로 통일해서 볼 수 있습니다.

단계별 풀이

  1. 각 캐릭터의 속성을 변수로 둡니다.
  2. 캐릭터 의 답은 의 속성이 같은지 다른지에 대한 관계식을 제공합니다.
  3. 정답 자료의 질문 그래프는 이 식들이 충분히 독립적이도록 짜여 있습니다.
  4. 그래서 답변이 한꺼번에 오면 전체 속성이 하나로 결정됩니다.

헷갈리기 쉬운 점

각 캐릭터는 자기 질문에 대해서만 참/거짓으로 답할 뿐, 다른 질문의 진위를 따로 판단하지 않습니다.

19. 격자판 장식하기

문제 한눈에 보기

격자판 꼭짓점에 세 가지 문양을 놓고, 빈 칸에는 대각선 방향도 골라서, 선으로 이어진 두 꼭짓점 문양이 모두 다르게 되게 만드는 문제입니다.

답

정답 그림처럼 문양과 대각선을 배치하면 된다.

핵심 개념

이 문제는 꼭짓점 3색칠과 대각선 선택을 동시에 맞추는 그래프 색칠 문제입니다.

왜 이 생각을 먼저 해야 하는지

대각선 방향을 정하면 인접 관계가 바뀌므로, 색칠과 선 선택을 별개가 아니라 한 번에 맞춰야 합니다.

단계별 풀이

  1. 먼저 꼭짓점 문양을 3색칠 문제로 봅니다.
  2. 이미 그어진 선이 강제하는 서로 다른 문양 조건을 만족하도록 기본 색을 정합니다.
  3. 빈 칸의 대각선은 양 끝 꼭짓점 문양이 서로 달라지도록 방향을 고릅니다.
  4. PDF의 해답 배치는 이 제약을 모두 만족하는 한 가지 완성 예입니다.

헷갈리기 쉬운 점

문양만 맞추고 대각선을 아무렇게나 채우면 새로 인접한 꼭짓점에서 충돌이 날 수 있습니다.

20. 괄호 문자열

문제 한눈에 보기

여러 구간이 모두 올바른 괄호 문자열이 되도록, 문자열의 두 문자를 최소 횟수로 서로 바꾸는 문제입니다.

답

각 부분 문제마다 최소 교환으로 구간들을 모두 균형 괄호 문자열로 만들면 된다.

핵심 개념

올바른 괄호 문자열은 전체 개수가 맞고, 모든 접두사에서 닫는 괄호가 더 많아지지 않아야 합니다.

왜 이 생각을 먼저 해야 하는지

단순히 (와 )의 개수만 맞춰서는 부족하고, 각 구간 내부의 prefix balance까지 맞춰야 하기 때문입니다.

단계별 풀이

  1. 각 구간이 올바른 괄호 문자열이 되려면 그 구간의 길이는 짝수여야 하고 (, ) 개수가 같아야 합니다.
  2. 또한 구간 안에서 왼쪽부터 볼 때 balance가 한 번도 음수가 되면 안 됩니다.
  3. 교환 연산은 멀리 있는 괄호를 한 번에 옮길 수 있으므로, 부족한 여는 괄호/닫는 괄호를 필요한 구간으로 보내는 방식으로 최소 횟수를 맞춥니다.
  4. PDF의 다섯 부분 문제는 각각 이런 원리로 최소 교환 수에 도달하면 정답 처리됩니다.

헷갈리기 쉬운 점

이번 연산은 인접 교환이 아니라 “임의의 두 문자 교환”입니다. 그래서 비용 계산이 더 작아질 수 있습니다.

개념 한눈에 보기

주제해당 문제한 줄 요약
관계 추론1, 18상대 위치나 참거짓 관계를 식으로 바꾸면 구조가 보인다.
수론2, 8, 17연속 표현 가능 구간, 소인수 배정, gcd 불변식을 이용한다.
조합/카탈란4, 6교차 금지나 가시 조건은 점화식으로 세는 것이 정석이다.
조건부확률5관측 정보가 들어오면 사후확률로 다시 가중해야 한다.
부호와 최적화7, 9, 12국소 선택보다 전체 최적 구조를 먼저 본다.
순열과 합동식10사이클 분해 후 회전량을 합동식으로 푼다.
게임 DP11, 16winning/losing 상태나 짝홀 제어로 승리 전략을 만든다.
그래프 오일러/색칠13, 19짝수 차수 조건, 3색칠 조건이 핵심 제약이다.
구간 연산14, 20수열과 괄호 모두 구간 구조를 맞추는 최소 조작 문제다.
트리 이동15새 정점 수 대비 왕복 비용이 큰 가지부터 고려한다.