목차
2024년도 정보올림피아드 1차대회 필기 초등부 16번부터 20번까지 문제 풀이 입니다.
16번
맨 위에 있는 8을 시작으로 왼쪽 자식과 오른쪽 자식의 값을 비교해서 왼쪽 자식, 자신, 오른쪽 자식의 크기가 아래와 같은 등호를 만족하도록 만들면 됩니다.
- 왼쪽 자식 < 자신 < 오른쪽 자식
가운데는 이미 3개의 숫자 중 중간 값이기 때문에 왼쪽 자식과 오른쪽 자식의 관계만 정해주면 됩니다.
- 왼쪽 자식 < 오른쪽 자식
17번
양쪽 끝의 숫자를 확인해서 더 큰 숫자를 클릭해서 빼주면 됩니다. 만약 두 수가 같다면 다음 숫자들이 큰 숫자를 먼저 빼면 됩니다.
18번
작은 숫자부터 시작합니다. 길이가 2인 것부터 시작해서 길이 5까지 만들어 나갑니다. 이 때 다른 이진 코드의 접두사가 되지 않게 만들어야 합니다.
혼란스럽지 않게 규칙적으로 진행해야 합니다. 길이 2에서는 1로 시작하는 두 가지 경우로 만들었습니다. 길이 3에서는 0으로 시작하게 하여 겹치지 않게 하였습니다. 같은 방식으로 숫자가 겹치지 않게 만들다보면 아래와 같이 만들 수 있습니다. 정답이 여러가지이기 때문에 꼭 아래와 같은 방법이 아니어도 정답이 됩니다.
19번
이 문제는 1부터 30까지 + 의 개수를 - 의 개수보다 많게 만드는 것입니다. 이 때 각 - 를 + 로 바꿀 때 비용이 들고, 그 비용이 최소가 되도록 해야 합니다.
P[i] - Q[i] 값이 이미 아래 적혀 있습니다. 비용의 합이 최소가 되게 하려면 비용이 작은 것들을 골라야 합니다. 그냥 고르는 것이 아니라 앞에서부터 P[i] - Q[i] 값이 음수가 되는 위치보다 앞에 있는 비용 중 가장 작은 것을 고르면 최소 비용으로 정답을 찾을 수 있습니다.
맨 앞에 있는 4에 -1이 있기 때문에 해당 위치를 + 로 바꿔 줍니다.
다음으로 - 값이 나오는 위치는 비용 12의 위치 입니다. 12 이전에 비용이 가장 작은 6을 + 로 변경시켜 줍니다.
다음 - 위치는 비용 10에 있습니다. 가장 작은 비용인 8을 + 로 변경 시켜 줍니다. 이렇게 진행하면 최종적으로 아래와 같은 결과를 얻을 수 있습니다.
이렇게 사용한 비용 39로 문제를 해결할 수 있습니다.
20번
어느 글자를 가리더라도 각각의 번호가 유일할 수 있도록 해야 합니다. 각각을 숫자로 생각하지 않고 구별하기 위한 기호라 생각하고 번호를 만들어 줍니다. 첫 번째로 1번부터 8번까지 00001111 을 입력 합니다.
다음으로 두 번째 자리는 00110011을 입력 합니다.
세 번째 위치는 01010101을 입력 합니다.
네 번째 위치는 01101001을 입력 합니다.
이렇게 다양한 패턴으로 글자를 구성하면 하나의 글자가 보이지 않아도 숫자를 알 수 있습니다.
아래와 같이 지워진 숫자들을 보고 원래의 숫자를 찾으면 정답을 얻을 수 있습니다.
'알고리즘 설명 > 정보올림피아드 필기' 카테고리의 다른 글
2024년 정보올림피아드 필기 초등부(11 ~ 15) (0) | 2025.03.21 |
---|---|
2024년 정보올림피아드 필기 초등부(6 ~ 10) (0) | 2025.03.19 |
2024년 정보올림피아드 필기 초등부(1 ~ 5) (0) | 2025.03.17 |
2023년 정보올림피아드 필기 중등부(16 ~ 20) (0) | 2024.04.26 |
2023년 정보올림피아드 필기 중등부(11 ~ 15) (0) | 2024.04.25 |