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

2020년 정보올림피아드 필기 초등부(6 ~ 10)

by 다빈치코딩 2024. 3. 25.

목차

    반응형

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

    1번부터 5번까지는 아래 링크 확인 바랍니다.

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

     

    2020년 정보올림피아드 필기 초등부(1 ~ 5)

    2020년 정보올림피아드 1차 필기 시험 초등부 1번부터 5번까지 풀이 진행하겠습니다. 1번 나머지 연산을 이해하는지 묻는 문제 입니다. (A * B) % C 연산은 ((A % C) * (B % C)) % C로 나타낼 수 있습니다.

    davincicoding.co.kr

     

    6번

    이런 문제는 시뮬레이션을 통해 해결할 수 있습니다. 1번 상자부터 금화가 있다고 가정하고 사실 여부를 따져보면 문제가 해결 됩니다.

    1번 상자 금화

    1. 거짓

    1번 상자에 금화가 있다면 2문장이 맞는 말이 되기 때문에 1번 상자에 금화가 있는 것이 아닙니다.

    2번 상자 금화

    1. 거짓
    2. 거짓

    2번 상자에 금화가 있다면 3번만 참을 말한 것이 됩니다.

    3번 상자 금화

    1. 거짓

    3번 상자에 금화가 있다면 2개의 문장이 맞기 때문에 답이 될 수 없습니다. 따라서 2번 상자에 금화가 있다고 할 때 이 문장들이 해결 됩니다.

     

    7번

    파이프 라인을 이해해야하는 문제 입니다. 즉 자동차가 이동하는 순간에도 사람들은 계속 이동하고 있다는 것을 이해해야 하는 문제 입니다.

    이 문제는 거꾸로 생각해야 문제를 쉽게 해결할 수 있습니다. 모든 여행객이 동시에 도착해야 한다면 8명의 사람은 걸어서 이동하고 있고, 4명은 자동차를 타고 목적지에 모두 도착할 때 가장 빨리 도착할 수 있습니다. 이렇게 이동한다고 시뮬레이션을 하면 아래와 같은 형태가 됩니다.

    4명씩 묶어서 3그룹으로 나누어 줍니다.

    1. 자동차를 타고 이동하고 걸어서 이동하는 첫 번째 그룹
    2. 걸어서 이동하다 자동차를 타고, 다시 걷는 그룹
    3. 걸어서 이동하다 마지막에 자동차를 타는 그룹

    첫 번째 그룹 4명을 태우고 12킬로미터를 갑니다. 내려주고 8킬로미터를 다시 돌아갑니다. 그럼 자동차는 1시간이 걸리고 총 20킬로미터를 이동한 것이 됩니다. 여행객의 속도는 4킬로미터 이므로 정확히 두 번째 그룹을 만나게 됩니다.

    자동차는 두 번째 그룹을 태우고 또 12킬로미터를 이동합니다. 두 번째 그룹을 내려주고 다시 8킬로미터를 거슬러 올라 갑니다. 자동차의 위치는 8킬로미터 지난 위치가 됩니다.

    이제 마지막 그룹을 태우고 12킬로미터를 이동하면 총 20킬로미터를 이동하게 됩니다.

    마지막 그룹을 계산해보면 걸어서 8킬로미터이기 때문에 2시간이 걸립니다. 그리고 12킬로미터를 자동차로 이동하기 때문에 12/20 * 60으로 36분이 걸립니다.

    이것으로 총 2시간 36분이 걸린다는 것을 알 수 있습니다.

     

    8번

    이런 문제는 복잡하게 생각할 필요가 없습니다. 정해지지 않은 n, k, x, y 숫자가 있기 때문에 임의로 내가 숫자를 정해도 상관이 없기 때문 입니다.

    A컵, B컵에 n으로 불리는 수를 10으로 가정하고, 10개의 공이 있었다고 하겠습니다. 그리고 A에서 k를 5라고 하여 5개의 공을 꺼내어 B로 옮겨줍니다. 그럼 B에는 파란 공 10개, 빨간 공 5개가 있습니다. 잘 섞어서 5개의 공을 다시 꺼내어 A로 옮겨줍니다.

    B에서 옮긴 5개의 공이 파란색3개, 빨간색 2개 였다면 A에는 x값인 파란색 공의 개수가 3개이고, B에 있는 y값인 빨간색 공 역시 3개가 있습니다. 즉 x, y 값은 3개로 같습니다.

    5개가 아니라 8개의 공을 옮겨보겠습니다. 빨간 공이 하나도 없어서 모두 파란 공만 8개가 옮겨가더라도 x, y값이 8개로 같습니다.

    수학적으로 따져봐도 B에서 A로 k개 옮길 때 B컵에 남은 빨강 공의 개수만큼 A컵에 파란색으로 옮겨진다는 것을 생각하면 쉽게 x와 y가 같다는 것을 알 수 있습니다.

     

    9번

    5원, 7원, 11원 세가지 동전으로 만들 수 있는 금액을 찾는 문제 입니다. 이런 문제는 가장 작은 동전인 5원자리를 주목해야 합니다. 만약 21원부터 25원을 모두 만들 수 있다면 그 이후는 모두 정확한 금액을 만들 수 있다는 것을 이해해야 합니다.

    21원이 있다면 5원을 더해 26원을 만들 수 있습니다, 22원으로는 27원을 만들 수 있고, 23원으로는 28원을 만들 수 있습니다. 만약 7원짜리 동전이 가장 작은 단위였다면 7개를 연속으로 만들 수 있는 금액부터 모든 거스름돈을 정확하게 만들 수 있습니다.

    그럼 연속한 5개의 숫자가 나오는 금액을 찾아보겠습니다.

    5원보다 작은 금액은 만들 수 없습니다. 20원까지 만들 수 있는 금액을 작성해 보았습니다. 5원을 만들기 위해서는 5원 동전 1개가 필요합니다. 12원을 만들기 위해서는 5원 1개, 7원 1개가 필요합니다. 13원은 만들 수 없습니다. 그리고 14원부터 18원까지 모든 금액을 만들 수 있습니다. 5개의 금액이 만들어졌기 때문에 14원 이후로는 모든 금액을 만들 수 있게 됩니다.

    잘 보면 19원은 14원을 만든 7원 동전 2개에 5원 동전 하나가 추가된 것을 알 수 있습니다. 20원 역시 5원 동전 3개인 15원에서 1개를 더해 5원 동전 4개로 만든 것을 알 수 있습니다.

     

    10번

    규칙을 잘 이해해야 합니다. b 다음에는 a가 올 수 없다는 것은 b 다음에는 b나, c만 올 수 있다는 뜻입니다. c 다음에는 a, b가 올 수 없다는 것은 c만 올 수 있다는 뜻입니다. 즉 문자가 작아지지 않고 계속 커진다는 뜻입니다.

    a를 표시 하지 않으면 b와 c만으로 나타낼 수 있습니다. 첫 번째는 a만 10개 있으므로 0 입니다. 두 번째는 a가 9개 있고, b가 하나 있습니다. 세 번째는 a가 9개, c 하나 있습니다. 그렇게 나타내면 다음과 같이 나타낼 수 있습니다.

    1 2 3 4 5 6 7 8 9 10
    0 b c bb bc cc bbb bbc bcc ccc

    b가 나타나면 b의 개수만큼 c로 변환 됩니다. 2번째에 b가 1개 있기 때문에 c는 한 번만 변환 합니다. 4번째에 b가 2개 있기 때문에 cc로 변하는데 2만큼 필요합니다. bbb 역시 b가 3개 있기 때문에 3만큼 지나면 ccc가 됩니다.

    규칙성이 느껴지기 시작합니다. 11번째는 bbbb가 됩니다. bbbb가 모두 cccc로 바뀌는 것은 b가 4개 있기 때문에 4만큼 지난 뒤 입니다. 따라서 15번째는 cccc가 되고, 16번째는 bbbbb가 됩니다. bbbbb가 ccccc가 되는 것은 5만큼 지난 뒤 입니다. 21번째가 ccccc이기 때문에 22번째는 bbbbbb가 됩니다. 이것을 a와 같이 표현하면 aaaabbbbbb이 됩니다.

    반응형