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

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

by 다빈치코딩 2024. 4. 10.

목차

    반응형

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

    1번부터 15번은 아래 링크 확인 바랍니다.

    2024.04.07 - [알고리즘 설명/정보올림피아드 필기] - 2023년 정보올림피아드 필기 초등부(1 ~ 5)

    2024.04.08 - [알고리즘 설명/정보올림피아드 필기] - 2023년 정보올림피아드 필기 초등부(6 ~ 10)

    2024.04.09 - [알고리즘 설명/정보올림피아드 필기] - 2023년 정보올림피아드 필기 초등부(11 ~ 15)

    16번

     

    일단 C1과 C2중 어느 카메라가 0에 있는지 판단해야 합니다. C1의 거리를 보면 최대값이 100이라는 것을 알 수 있습니다. 반면 C2는 최대값이 138로 100을 넘습니다. 전체 좌표가 -100, 100 사이인데 거리가 100보다 크다는 것은 0이 아닌 다른 위치에 있다는 것을 알 수 있습니다. 따라서 C1이 0의 좌표에 있고, C2는 알 수 없는 위치에 있다는 것을 알 수 있습니다.

    다음으로 C2의 위치를 확인할 수 있는 부분은 20번의 거리가 C1은 100인데 C2는 138입니다. 이 말은 C1에서 38만큼 떨어져 있는 위치라는 것을 알 수 있고, 결국 C2는 -38의 위치에 있다는 것을 알 수 있습니다.

    이를 통해 숫자들을 가지고 집이 어디 있는지 알 수 있습니다.

    1. C2의 숫자가 C1보다 38이 더 크다면 집은 오른쪽에 있습니다.
    2. C1의 숫자가 C2보다 작다면 집은 왼쪽에 있습니다. 왼쪽은 38씩 차이가 안날 수 있습니다.

    이와 같은 규칙으로 표시하면 다음과 같이 정답을 찾을 수 있습니다.

    17번

     

    원래 수열과는 다른 새로운 수열을 만들어야 합니다. 그러면서 중복되는 수가 없어야 합니다. 이 문제는 숫자들의 사이클을 찾아 가장 짧은 사이클이 어디인지를 묻는 문제 입니다.

    1부터 사이클이 어떻게 연결되어 있는지 찾아보겠습니다.

    1번 표시를 보면 1과 10이 연결되어 있습니다. 10을 찾아보면 2번 위치에 4와 연결되어 있습니다. 4는 11로 연결되어 있고, 11은 5로 연결되어 있습니다. 마지막으로 5는 다시 1과 연결되어 하나의 사이클을 만들어집니다.

    같은 방식으로 2부터 시작하는 사이클을 찾아보고, 3으로 시작되는 사이클을 찾아봐서 가장 짧은 사이클을 찾으면 됩니다. 이 문제에서는 2부터 나머지 숫자들이 하나의 사이클을 이뤄 가장 짧은 사이클이 위에서 찾은 1부터 시작하는 사이클이 정답이 됩니다.

     

    18번

     

    모든 숫자의 합은 1로 모두 나눌 수 없습니다. 따라서 0이 아닌 구간이 나타날 수 밖에 없고, 이 구간을 가장 앞이나, 가장 뒷 부분으로 해주어야 합니다. 따라서 앞이나 뒤에서 시작하는 것이 아니라 중간에서 시작해서 범위를 넓혀나가야 합니다.

    합이 0이 되는 부분이 많게 하려면 최소한의 개수로 0을 만들어야 합니다. 중간에 -4, 4가 있기 때문에 이 값을 기준으로 0이 되는 부분을 찾아주면 쉽게 문제를 해결할 수 있습니다.

     

    19번

    plus가 되는 사각형 정점이 중요합니다. 사각형에 최대한 큰 숫자를 넣어주고, max를 찾는 원 정점에는 작은 숫자를 넣어 큰 숫자의 낭비를 막아주면 쉽게 해결 됩니다.

    최종적인 합계인 1번은 2번과 4번의 합계로 구할 수 있습니다. 2번은 3번과 더해지고, 4번은 5번과 더해집니다. 이런 관계를 생각해서 숫자를 넣어줍니다.

    1번부터 5번까지의 숫자를 크게 만들기 위해서 위와 같이 숫자들을 넣어줄 수 있습니다. 결국 최종적으로 가장 큰 수는 11부터 16까지의 합계인 81이 되면 됩니다. 이렇게 만들어 준 뒤 나머지 숫자들은 아무곳에나 넣어주어도 문제가 되지 않습니다. 아래는 정답의 예시입니다.

    20번

    먼저 한 칸이라도 색칠이 되기 위해서는 색칠이 되었으면 하는 칸을 기준으로 세 칸을 색칠해야 합니다. 그리고 색칠된 칸으로 다음 칸을 칠하도록하여 전체적으로 모두 칠해지게 해야 합니다. 이런 문제는 가운데서 시작해서 퍼지는 모양을 만드는 것을 생각하기 쉽지만 그렇게 해서는 한계가 있습니다. 한쪽에서 시작해서 전체적으로 감싸는 형태가 되도록 합니다.

    이렇게 9개를 칠하고 나면 최종적으로 모든칸을 색칠할 수 있습니다.

     

    반응형