하루한줄 코딩일기

[백준] 5단계: 1차원 배열(1~7번) - 파이썬(Python) 본문

Algorithm

[백준] 5단계: 1차원 배열(1~7번) - 파이썬(Python)

jjuha 2022. 1. 25. 18:46

백준 > 1차원 배열

👊 내 문제 풀이

백준 > 1차원 배열 > 최소, 최대

1. 10818번 : 최소, 최대

input 대신 readline 함수를 써봤다.

import sys
n = int(input())
arr = list(map(int, sys.stdin.readline().split()))
print(min(arr),max(arr))

 

백준 > 1차원 배열 > 최댓값

2. 2562번 : 최댓값

num = []
for i in range(9):
	num.append(int(input()))
print(max(num))
print(num.index(max(num))+1)

 

백준 > 1차원 배열 > 숫자의 개수

3. 2577번 : 숫자의 개수

처음엔 temp 리스트를 만들고, 숫자 n일 경우 temp의 n번째 인덱스에 +1을 더해주는 코드를 짰으나, 문자의 개수를 세는 count 함수를 사용하는 것이 가장 간단한 솔루션이다.

a = int(input())
b = int(input())
c = int(input())
m = list(str(a*b*c)) # m = ['1','7','0','3','7','3','0','0']
# count 함수 사용
for i in range(10):
	print(m.count(str(i)))

 

백준 > 1차원 배열 > 나머지

4. 3052번 : 나머지

set 자료형을 사용해 중복 없이 나머지를 저장하고 그 길이를 출력한다.

ans = set()	#중복제거를 위해 set 사용
for i in range(10):
	n = int(input())
	ans.add(n%42)
print(len(ans))

 

백준 > 1차원 배열 > 평균

5. 1546번 : 평균

n = int(input())
scores = list(map(int, input().split()))
maxscore = max(scores)
for i in range(n):
	scores[i] = scores[i]/maxscore*100
print(sum(scores)/n)

 

백준 > 1차원 배열 > OX퀴즈

6. 8958번 : OX퀴즈

O면 총 점수에 누적점수를 더한 한 후 누적점수에 1점을 추가하고, X를 만나면 누적점수를 1로 초기화해준다.

N = int(input())
for i in range(N):
	arr = list(input())
	score = 0	#총점수
	plusscore = 1	#누적점수
	for j in arr:
		if j == "O":
			score += plusscore
			plusscore += 1
		elif j == 'X':
			plusscore = 1
	print(score)

 

백준 > 1차원 배열 > 평균은 넘겠지

7. 4344번 : 평균은 넘겠지

둘째 줄 부터 테스트 케이스의 첫 숫자는 학생의 수를 나타내므로 n이라는 변수에 따로 저장해주고, 그 다음 인덱스부터는 점수를 나타내므로 scores 리스트에 담는다.

C = int(input())
for i in range(C):
	scores = list(map(int, input().split()))
	n = scores[0]
	scores = scores[1:]
	ave = sum(scores)/n

	cnt = 0	#평균을 넘는 학생 수
	for j in scores:
		if j>ave:
			cnt+=1
	print("%.3f%%" %(cnt/n*100))

Comments