본문 바로가기
알고리즘 설명/정보올림피아드 필기

2025년 정보올림피아드 필기 초등부(16 ~ 20)

by 다빈치코딩 2026. 5. 2.

목차

    반응형

    2025년도 정보올림피아드 1차대회 필기 초등부 16번부터 20번까지 문제 풀이 입니다.

     

    16번

    2차원 배열 누적합을 구하는 형태와 비슷한 문제 입니다. 누적되는 사탕의 개수를 파악해서 사탕이 들어갈지 말지를 정해야 합니다. 행과 열을 하나씩 파악해 나가 작성하는 것이 문제를 쉽게 접근하는 방법입니다. 먼저 1행과 1열만 사탕을 넣을 자리를 체크 합니다.

    다음으로 2행, 2열만 계산하며 넣어줍니다. 2차원 배열의 누적합을 떠올리면 쉽게 넣을 수 있습니다.

    같은 방식으로 모든 행과 열을 맞춰 사탕을 넣어줍니다. 최종적으로 다음과 같은 결과를 얻을 수 있습니다.

     

     

    17번

    최댓값을 구하는 문제이기 때문에 두 수의 합이 음수가 된다면 선택하지 말아야 합니다.

    그리고 앞의 두 수의 합보다 뒤의 두 수의 합이 더 크다면 뒤의 두 수의 합으로 선택 해야 합니다.

    지금 4 + (-2) 의 합은 2이지만 -2와 다음 5의 합은 3으로 뒤의 두 수의 합이 더 큽니다. 따라서 이 경우에는 선택 하지 않고 다음으로 넘어 갑니다.

    이런 방식으로 모든 숫자들을 클릭하면 42를 얻을 수 있습니다.

     

     

    18번

    길이 20의 실이 있고 가운데 10에 불을 붙이면 10초만에 길이 20을 태울 수 있습니다.

    그럼 적당한 길이로 조절하면 4개의 불로 20 * 4 는 80의 길이를 태울 수 있습니다.

     

    길이가 30이라면 15에 불을 붙여 15초만에 길이 30을 태울 수 있습니다.

    위와 같은 방식으로 조절하면 30 * 4 는 120으로 120 길이 까지 태울 수 있습니다.

     

    12.5 초로 계산해보면 길이 25을 태울 수 있고, 4개이기 때문에 100의 길이를 태울 수 있습니다.

    이제 12.5 길이와 비슷한 수준으로 4등분을 해주면 됩니다.

     

    먼저 12.5와 가장 비슷한 13을 선택 합니다. 다음으로 실이 타는 위치는 12.5 + 12.5 인 25 정도 떨어진 곳입니다. 13 + 25는 38이기 때문에 38과 가까운 40을 선택 합니다.

     

    40 + 26은 66이기 때문에 가장 가까운 67을 선택 합니다.

    67 + 26은 94이기 때문에 가장 가까운 92를 선택 합니다.

     

    이렇게 선택한 후 시뮬레이션을 시작 합니다.

     

    19번

    문제를 딱 봐도 처음과 끝이 잘못 되어 있습니다. 시작은 열고, 끝은 닫는 형태로 바꿔주어야 합니다.

    전체 괄호의 개수는 32개이고, 여는 괄호가 12개 입니다. 올바른 상태로 바꾸기 위해서는 여는 괄호와 닫는 괄호가 각각 16개가 되어야 합니다.

    기존의 닫는 괄호 4개를 어디서 여는 괄호로 바꿔줄 것인가를 고민해야 합니다.

    계산을 편하게 하기 위해서 여는 괄호는 +1, 닫는 괄호는 -1로 변경해서 생각 합니다. 모든 괄호의 합은 0이 되어야 합니다.

    또한 숫자 계산했는데 중간에 음수가 나온다면 잘못된 괄호입니다. +1, -1을 통해 중간에 음수가 나온다면 가장 왼쪽에서부터 닫는 괄호를 여는 괄호로 바꿔줍니다.

    이렇게 앞에서부터 4개의 닫는 괄호를 여는 괄호로 변경해 주었습니다.

    계산해보니 모든 숫자의 합이 0이 되어 정상적인 괄호임을 알 수 있습니다. 만약 괄호의 합이 중간에 음수가 나왔다면 다른 괄호를 변경해야 합니다.

     

    20번

     

    카드가 뒤집혀 있다는 부분이 신경 쓰이기는 하지만 우리가 알고 있는 버블 정렬 순서로 뒤집어 줍니다.

    앞에서부터 두 수를 비교해서 앞의 수가 더 크다면 뒤집어 줍니다.

    처음부터 끝까지 한 바퀴를 반복 했을 때의 모습입니다.

    두 번째 반복을 실행 했을 때의 결과 입니다. 만약 두 수가 뒤집힌 채로 똑같은 수라면 한 번 더 뒤집어 정상적인 형태로 바꿔 줍니다.

     

    세 번째 반복 입니다. 이미 정렬된 항목들은 건드리지 않습니다.

    최종적으로 마지막 반복을 실행하면 아래와 같은 결과를 얻을 수 있습니다.

     

    반응형