반응형
일곱 난쟁이 성공스페셜 저지
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
2 초 | 128 MB | 116332 | 47849 | 34160 | 41.880% |
문제
왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다.
아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다.
아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오.
입력
아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다.
출력
일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를 찾을 수 없는 경우는 없다.
예제 입력 1
20
7
23
19
10
15
25
8
13
예제 출력 1
7
8
10
13
19
20
23
import sys
n = 9
a = [int(input()) for _ in range(n)]
a.sort()
total = sum(a)
for i in range(0, n):
for j in range(i+1, n):
if total - a[i] - a[j] == 100:
for k in range(0, n):
if i == k or j == k:
continue
print(a[k])
sys.exit(0)
import sys
: sys 모듈을 가져옵니다. sys 모듈은 시스템 관련 기능을 제공하는 파이썬 내장 모듈입니다.
n = 9
: 변수n
에 9를 저장합니다. 이는 리스트a
의 길이가 9라는 뜻입니다.
a = [int(input()) for _ in range(n)]
: 리스트 컴프리헨션을 사용하여 사용자로부터 9개의 숫자를 입력받아 리스트a
에 저장합니다.int(input())
을 통해 입력받은 값은 정수로 변환됩니다.
a.sort()
: 리스트a
를 오름차순으로 정렬합니다.
total = sum(a)
: 리스트a
의 모든 숫자의 합을 구하여 변수total
에 저장합니다.
for i in range(0, n):
: 0부터 n-1까지 반복하는 i에 대해 순회합니다.
for j in range(i+1, n):
: i+1부터 n-1까지 반복하는 j에 대해 순회합니다. 이렇게 함으로써 i와 j는 서로 다른 인덱스를 가리키게 됩니다.
if total - a[i] - a[j] == 100:
: total에서 a[i]와 a[j]를 뺀 값이 100과 같은지 확인합니다. 만약 같다면 아래의 코드를 실행합니다.
for k in range(0, n):
: 0부터 n-1까지 반복하는 k에 대해 순회합니다.
if i == k or j == k:
: 만약 k가 i와 동일하거나 j와 동일하다면 건너뜁니다. 즉, i나 j와 같은 인덱스는 출력에서 제외됩니다.
print(a[k])
: k번째 숫자를 출력합니다. 이는 a 리스트에서 i와 j를 제외한 나머지 숫자를 출력하는 역할을 합니다.
sys.exit(0)
: 프로그램을 종료합니다.
Uploaded by N2T
반응형
'Algorithm' 카테고리의 다른 글
[Algorithm] 우선순위 큐(Priority Queue) (0) | 2023.09.05 |
---|---|
[백준 2338 자바/Java] 긴자리 계산 (0) | 2023.05.23 |
[백준 10812 파이썬/python] 바구니 순서 바꾸기 (0) | 2023.05.17 |
[백준 17404 파이썬/python] RGB거리 2 (0) | 2023.05.17 |
[백준 2133 파이썬/python] 타일 채우기 (0) | 2023.04.28 |