본문으로 건너뛰기

백준 4단계 - 1차원 배열

배열을 사용해 봅시다.

10818 최소, 최대

N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.

n = int(input())
nums = list(map(int, input().split()))

print('--- output ---')
print(min(nums), max(nums))

2562 최댓값

9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오.
예를 들어, 서로 다른 9개의 자연수
3, 29, 38, 12, 57, 74, 40, 85, 61
이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다.

nums = []
for i in range(9):
nums.append(int(input()))

print('--- output ---')
print(max(nums))
print(nums.index(max(nums)) + 1)

3052 나머지

두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.

nums = []
for i in range(10):
nums.append(int(input()) % 42)

print('--- output ---')
print(len(set(nums)))

1546 평균

세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M100으로 고쳤다.
예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70
100이 되어 71.43점이 된다.
세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하는 프로그램을 작성하시오.

n = int(input())
nums = list(map(int, input().split()))
rates = [num / max(nums) * 100 for num in nums]

print('--- output ---')
print(f"{sum(rates) / len(rates)}")

8958 OX퀴즈

"OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수는 3이 된다.
"OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3 = 10점이다.
OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.

n = int(input())
scores = []
for i in range(n):
answer = input()
o_count = 0
score = []
for j in range(len(answer)):
if answer[j] == 'O':
o_count += 1
score.append(o_count)
else:
o_count = 0
scores.append(sum(score))

print('--- output ---')
print(*scores, sep='\n')

4344 평균은 넘겠지

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

c = int(input())
ratios = []
for i in range(c):
scores = list(map(int, input().split()))
average = sum(scores[1:]) / scores[0]
over_average = [score for score in scores[1:] if score > average]
ratios.append(f"{len(over_average) / scores[0] * 100:.3f}%")

print('--- output ---')
print(*ratios, sep='\n')