Python 17제] 2021년 한국정보올림피아드 1차대회 초등부 2. 나누기
문제] N개의 정수 수열 A1, A2,..., AN이 주어진다. 수열을 각각이 연속된 네 부분으로 나누려고 한다. 단, 각 부분은 최소 하나의 수를 포함해야 한다. 또 각 부분의 합은 모두 같아야 한다. 즉 어떤 i, j, k(1≤i<j<k<N)에 대해서 [A1,...,Ai], [Ai+1,...,Aj], [Aj+1,...Ak], [Ak+1,...AN]으로 나눈다. 예를 들어 주어진 수열이 4, -1, 2, 1, -3, 1, 2, 2, 1, 3이라고 하자. 이 수열을 아래과 같이 나누면 각 부분의 합이 달라서 허용되는 형태가 아니다. [4, -1, 2], [1, -3, 1, 2], [2, 1], [3] 아래와 같이 나눈 경우 각 부분의 합이 모두 같다. [4, -1], [2, 1],[-3, 1, 2, 2,..
2021. 8. 19.
Python 14제] 조건에 맞는 리스트값을 출력하는 프로그램을 작성하시오.
문제] 비어있는 리스트에 0이 입력될 때까지 숫자를 무작위로 입력받아 추가한다. 그리고 인덱스와 기준 숫자를 입력하면, 인덱스가 리스트 범위를 벗어나면 "리스트의 범위를 벗어났습니다."를 출력하고 종료한다. 인덱스가 범위에 포함되면 리스트에서 0에서 입력받은 인덱스까지에 저장된 숫자들 중 기준 숫자보다 큰 숫자를 모두 출력하는 프로그램을 작성하시오. (단, 리스트에 저장되는 숫자는 2자리 자연수이고 중복될 수 있다.) [입력 예시1] 2 → 인덱스 11 → 기준 숫자 [출력 예시1] 무작위로 입력된 값] 11, 22, 33, 44, 55, 0 인덱스 0~2까지 중 기준숫자 11보다 큰 숫자] 33 [입력 예시2] -2 → 인덱스 5 → 기준 숫자 [출력 예시2] 무작위로 입력된 값] 99, 88, 88,..
2021. 8. 5.
Python 9제] 로또 당첨 등수를 구하는 프로그램을 작성하시오.
문제] 자동으로 무작위 자연수를 반복해서 입력 받아 로또번호코드를 생성하고자 한다. 4가 입력되면 로또번호코드에 추가하지 않고 무시하고, 7이 입력되면 로또번호코드 생성을 종료하고 최종 결과를 출력한다. 단, 로또 번호는 0~99의 자연수로 제한하며, 로또번호코드가 11의 배수이면 1등, 7의 배수이면 2등이다. [입력 예시 1] 1 2 1 7 [출력 예시 1] 선택된 번호 내역은 아래와 같습니다. [1, 2 , 1 , 7] 선택된 번호의 합은 11이고 11의 배수입니다. 축하합니다. 1등입니다. [입력 예시 2] 6 5 4 1 0 7 [출력 예시 2] 선택된 번호 내역은 아래와 같습니다. [6, 4, 1, 0, 7] 선택된 번호의 합은 14이고 7의 배수입니다. 축하합니다. 2등입니다. [입력 예시 3..
2021. 8. 1.
Python 7제] 2019년 한국정보올림피아드 1차대회 초등부 1번 - 막대기
문제] [유형3] 1번 - 막대기(100점) 모든 언어에 대해 시간 제한 1초, 메모리 제한 512MB입니다. 아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 6, 9, 7, 6, 4, 6 이다. 일렬로 세워진 막대기를 오른쪽에서 보면 보이는 막대기가 있고 보이지 않는 막대기가 있다. 즉, 지금 보이는 막대기보다 뒤에 있고 높이가 높은 것이 보이게 된다. 예를 들어, 그림과 같은 경우엔 3개(6번, 3번, 2번)의 막대기가 보인다. N개의 막대기에 대한 높이 정보가 주어질 때, 오른쪽에서 보아서 몇 개가 보이는 지를 알아내는 프로그램을 작성하려고 한다. 입력형식 표..
2021. 7. 12.