<1단계:10818>
N개의 정수를 입력했을 때 , 최솟값과 최댓값을 구하는 프로그램을 작성해보자.
첫번째 줄에 정수의 개수 N을 입력하고, 두번째 줄에 N개의 정수를 공백으로 구분하여 입력한 뒤,
최솟값과 최댓값을 공백으로 구분해 출력하자.
코드:
N = int(input())
d = list(map(int,input().split()))
max = min = d[0]
for i in range(N):
if d[i] > max:
max = d[i]
if d[i] < min:
min = d[i]
print(min, max)
입력:
5
20 10 35 30 7
출력:
7 35
<2단계:2562>
9개의 서로 다른 자연수를 입력했을 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를
구하는 프로그램을 작성해보자.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.
첫번째 줄부터 아홉 번째 줄까지 한 줄에 하나의 자연수를 입력하고,
첫번째 줄에 최댓값, 두번째 줄에 최댓값이 몇 번째 수인지를 출력하자.
이번에는 max()와 index(x)를 이용해보았다.
max()를 이용해 리스트의 최댓값을 출력하고,
index(x) 함수는 리스트에 x 값이 있으면 x의 index를 출력한다.
코드:
d = []
for i in range(9):
d.append(int(input()))
print(max(d))
print(d.index(max(d))+1)
입력:
3
29
38
12
57
74
40
85
61
출력:
85
8
<3단계:2577>
세 개의 자연수 A,B,C를 입력했을 때 A*B*C를 계산한 결과에 0부터 9까지 각각의 숫자가
몇 번씩 쓰였는지를 구하는 프로그램을 작성해보자.
예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고,
계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.
첫번째 줄에 A,두번째 줄에 B, 세번째 줄에 C를 입력한다.
첫번째 줄에 A*B*C의 결과에 0이 몇번 쓰였는지 출력하고, 둘째 줄부터 열 번째 줄까지
A*B*C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례대로 한 줄에 하나씩 출력하자.
코드:
A = int(input())
B = int(input())
C = int(input())
d = list(str(A*B*C))
for i in range(10):
print(d.count(str(i)))
입력:
150
266
427
출력:
3
1
0
2
0
0
0
2
0
0
<4단계:3052>
자연수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한 뒤, 서로 다른 값이 몇 개 있는 지 출력하는
프로그램을 작성해보자.
첫번째 줄부터 열번째 줄까지 숫자가 한 줄에 하나씩 입력되고,
42를 나누었을 때, 서로 다른 나머지가 몇개 있는지 출력하자.
set() 함수는 자료형의 중복을 제거해주는 역할을 한다.
코드:
d = []
for i in range(10):
d.append(int(input())%42)
d = set(d)
print(len(d))
입력:
42
84
252
420
840
126
42
84
420
126
출력:
1
<5단계:1546>
N개의 과목의 점수가 입력될 때, 이 중 최댓값을 M이라하자.
모든 점수를 점수/M*100으로 고친 뒤에 평균을 구하는 프로그램을 작성해보자.
첫번째 줄에 시험 본 과목의 개수 N을 입력하고, 두번째 줄에 현재 성적을 공백으로 구분하여 입력하자.
코드:
N = int(input())
d = list(map(int, input().split()))
M = max(d)
for i in range(N):
d[i] = d[i] / M * 100
average = sum(d) / N
print("%.2f"%average)
입력:
30
40 80 60
출력:
75.00
<6단계:8958>
"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다.
문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다.
예를 들어, "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성해보자.
첫번째 줄에 테스트 케이스의 개수를 입력하고, 각 테스트 케이스는 한줄로 이루어져있다.
각 테스트 케이스마다 점수를 출력해보자.
코드:
n = int(input())
for i in range(n):
d = input()
count = 1
sum = 0
for i in range(len(d)):
if d[i] == 'O':
sum += count
count += 1
else:
count = 1
print(sum)
입력:
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX
출력:
10
9
7
55
30
<7단계:4344>
첫번째 줄에 테스트 케이스의 개수 C를 입력하고, 두번째 줄 부터 각 테스트 케이스마다 학상의 수 N이
첫 수로 주어지고, 이어서 N명의 점수가 입력된다.
각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력하자.
코드:
C = int(input())
for i in range(C):
d = list(map(int,input().split()))
average = sum(d[1:])/d[0]
count = 0
for score in d[1:]:
if score > average:
count += 1
print("%.3f"%(count/d[0]*100)+"%")
입력:
5
5 50 50 70 80 100
7 100 95 90 80 70 60 50
3 70 90 80
3 70 90 81
9 100 99 98 97 96 95 94 93 91
출력:
40.000%
57.143%
33.333%
66.667%
55.556%
![](https://blog.kakaocdn.net/dn/lkmCj/btrs7BLEhr3/Spq2V2fVciVu8xQacjwc80/img.png)