목차
2024년도 정보올림피아드 1차대회 필기 초등부 1번부터 5번까지 문제 풀이 입니다.
1번
지하철은 오전 6시부터 7분마다 출발하기 때문에 7의 배수인 값을 찾으면 됩니다.
1번 오전 10시는 오전 6시부터 4시간 뒤이기 때문에 240분 입니다. 240은 7의 배수가 아니기 때문에 답이 아닙니다.
2번 오후 12시 4분은 오전 6시부터 6시간 4분 입니다. 364분은 7의 배수이기 때문에 2번이 정답이 됩니다.
2번이 답이긴 하지만 나머지도 확인해 보겠습니다.
3번 오후 1시 3분은 423분으로 7의 배수가 아닙니다.
4번 오후 4시 33분은 633분으로 7의 배수가 아닙니다.
5번 오후 11시 11분은 1031분으로 7의 배수가 아닙니다.
2번
1부터 차례대로 계산하면 결과를 얻을 수 있습니다.
x가 1일 경우를 생각하면 2, 3, 4, 5, 6이 됩니다. 따라서 합계는 20입니다.
x가 2일 경우에는 6, 8, 10, 12가 됩니다. 합계는 36입니다.
x가 3일 경우에는 12, 15, 18이 됩니다. 합계는 45입니다.
x가 4일 경우에는 20, 24 입니다. 합계는 44입니다.
x가 5일 경우에는 30입니다.
이 숫자들을 모두 더하면 20 + 36 + 45 + 44 + 30으로 합계는 175가 됩니다.
위와 같이 계산해도 되지만 좀 더 쉬운 방법도 있습니다.
xa + xb + xc는 x(a + b + c)로 나타낼 수 있습니다. 따라서 하나하나 구하는 것이 아니라 합계에다가 x를 곱해주는 방식으로 구할수 있습니다.
2부터 6까지의 합은 20입니다. 여기에 1을 곱하면 그대로 20입니다.
20에서 2를 빼면 18이 되고, 여기에 2를 곱하면 36입니다.
18에서 3을 빼면 15가 되고, 여기에 3을 곱하면 45가 됩니다.
15에서 4를 빼면 11이 되고, 여기에 4를 곱하면 44가 됩니다.
마지막으로 11에서 5를 빼면 6이고, 여기에 5를 곱하면 30입니다.
위에서 구한 것과 결과가 같음을 알 수 있습니다.
3번
괄호는 총 6개로 + 또는 - 가 들어가는 경우 $2^6$ 으로 총 64가지가 있습니다. 그냥 무작정 넣어서는 너무 많은 시간을 잡아먹게 되어 다른 방식으로 접근해야 합니다.
몇 몇의 숫자들을 묶어 관리하면 좀 더 쉽게 문제를 해결할 수 있습니다. (2, 3, 5), (1, 4, 3) 이렇게 묶어 각각을 0으로 만들면 결국 4 + 0 + 0 = 4로 두 변식을 만족시킬 수 있습니다. 그럼 각각을 0으로 만드는 방법을 생각해 보겠습니다.
- 2, 3, 5를 0으로 만들기 위해 -, -, + 또는 +, +, - 로 0을 만들 수 있습니다.
- 1, 4, 3을 0으로 만들기 위해 -, +, - 또는 +, -, + 로 0을 만들 수 있습니다.
이 두가지 경우를 조합하면 아래와 같은 케이스 4가지를 만들 수 있습니다.
- - + - + - , - - + + - +
+ + - - + - , + + - + - +
빨간색과 파란색을 글자들의 이유는 아래에 설명하도록 하겠습니다.
이와 같은 방식으로 0으로 만들 수 있는 부분을 찾아보면 아래와 같은 숫자를 찾을 수 있습니다.
4 2 3 5 1 4 3
맨 앞의 4를 제외하고 주황색 숫자 (2, 5, 3) 파란색 숫자 (3, 1, 4)를 0으로 만들면 됩니다.
- 2, 5, 3을 0으로 만들기 위해 -, +, - 또는 +, -, + 로 0을 만들 수 있습니다.
- 3, 1, 4를 0으로 만들기 위해 +, +, - 또는 -, -, + 로 0을 만들 수 있습니다.
- + + + - - , - - + - + -
+ + - + - + , + - - - + +
이렇게 총 8가지의 방법을 찾았습니다. 하지만 잘 보면 위와 아래에 중복되는 케이스가 보입니다. 중복 되는 케이스는 아래와 같습니다.
- - + - + - (위 빨간색 표시)
+ + - + - + (위 파란색 표시)
위에서 빨간색과 파란색으로 표시한 것들이 바로 이것들 입니다. 이렇게 8가지 중 2가지 중복을 제외하면 총 6가지 경우가 됩니다.
4번
먼저 가장 적은 횟수의 대결부터 생각해 보겠습니다. 가장 적은 횟수가 되기 위해서는 이긴사람은 계속 연승으로 이기고, 최종 승자는 한 번도 지지않고 계속 이기면 됩니다. 10명이 5팀으로 나누어 3번씩 대결을 하면 3 * 5 = 15로 15번의 경기만에 5명으로 줄게 됩니다.
다음 5명이 한 명을 제외한 4명이 2명씩 대결하여 6번의 경기로 2명이 남습니다. 이 두명 역시 3번의 경기로 1명이 되고, 마지막으로 남은 두 명이 3번 경기를 하여 최종 승자를 얻을 수 있습니다. 이렇게 최소 횟수로 한 경기의 수는 15 + 6 + 3 + 3 = 27번이 됩니다.
다음으로 가장 많은 대결 횟수를 생각해 보겠습니다. 가장 많은 대결을 하기 위해서는 떨어진 사람들이 최소 2승을 챙겨야 합니다. 그리고 승자들은 2패를 누적해 가고 있습니다. 누적 3패를 하게되면 무조건 탈락이기 때문에 두 번째 경기부터는 1패만 해도 탈락합니다.
먼저 5팀이 3승 2패를 하기 위해 총 5판씩 경기를 진행합니다. 그럼 5 * 5 = 25로 25판의 경기로 5명이 남게 됩니다. 이 5명은 이제 1패만 해도 탈락입니다.
5명 중 4명이 두 쌍이 되어 한 경기씩 진행하여 2명이 떨어집니다. 남은 3명 중 또 한 경기로 한명이 떨어지고, 마지막 경기로 또 한 명이 떨어집니다. 그럼 25 + 2 + 1 + 1 = 29가 됩니다.
가장 많은 대결 횟수는 29이고, 가장 적은 대결 횟구는 27이 되어 두 경우의 대결 횟수의 합은 56이 됩니다.
5번
우리가 알고 있는 계산식을 사용하면 16진수를 10진수로 바꾸고, 다시 8진수로 바꿔주어야 합니다. 하지만 이렇게 하면 확실하긴 하지만 복잡하게 계산을 진행해야 합니다. 16진수와 8진수의 관계를 잘 생각해보면 좀 더 쉽게 문제를 해결할 수 있습니다.
바로 16진수와 8진수 모두 2진수의 배수 관계라는 것입니다. 예제에 있는 EA를 2진수로 바꿔 보겠습니다.
16진수 E는 10진수로 14입니다. 이것을 2진수로 나타내면 1110 입니다. 같은 방식으로 A는 1010으로 나타낼 수 있습니다. 그럼 EA는 2진수로 아래와 같이 나타낼 수 있습니다.
- EA = 1110 1010
이 숫자를 8진수로 나타내기 위해서는 4자리가 아닌 3자리씩 끊어주어야 합니다. 그럼 이렇게 나타낼 수 있습니다.
- 1110 1010 = 011 101 010
맨 앞에 0이 추가된 이유는 3자리로 맞춰주기 위해서 입니다. 이렇게 3자리로 바꿔주면 8진수로 변환하기 쉽습니다. 각각의 숫자를 8진수로 바꿔주면 아래와 같습니다.
- 011 101 010 = 3 5 2
이렇게 352라는 숫자가 나왔고 이것들의 숫자를 모두 더하면 3 + 5 + 2로 10이 된 것입니다.
마찬가지 방법으로 16진수를 2진수로 바꾼다음 다시 8진수로 바꿔준다면 계산을 쉽게 할 수 있습니다.
먼저 16진수를 2진수로 바꿔 주겠습니다.
- A6E4F3 = 1010 0110 1110 0100 1111 0011
다음으로 2진수를 8진수로 끊어보겠습니다.
- 1010 0110 1110 0100 1111 0011 = 101 001 101 110 010 011 110 011
이제 2진수를 8진수로 바꿔보겠습니다.
- 101 001 101 110 010 011 110 011 = 5 1 5 6 2 3 6 3
이제 각각의 자리수를 더해주겠습니다.
- 5 + 1 + 5 + 6 + 2 + 3 + 6 + 3 = 31
이렇게 31이라는 결과를 얻을 수 있습니다.
'알고리즘 설명 > 정보올림피아드 필기' 카테고리의 다른 글
2024년 정보올림피아드 필기 초등부(11 ~ 15) (0) | 2025.03.21 |
---|---|
2024년 정보올림피아드 필기 초등부(6 ~ 10) (0) | 2025.03.19 |
2023년 정보올림피아드 필기 중등부(16 ~ 20) (0) | 2024.04.26 |
2023년 정보올림피아드 필기 중등부(11 ~ 15) (0) | 2024.04.25 |
2023년 정보올림피아드 필기 중등부(6 ~ 10) (0) | 2024.04.24 |