반응형
10818 최소, 최대
n = int(input())
a = list(map(int,input().split()))
print(min(a),end=" ")
print(max(a))
2562 최댓값
num = [int(input()) for i in range(9)] # 한 줄 for문으로 바로 리스트에 담아준다
print(max(num)) # 내장함수 max 이용
print(num.index(max(num))+1) # max값의 인덱스 반환
2577 숫자의 개수
num = [int(input()) for i in range(3)] # 숫자 3개 받기
a = [0,0,0,0,0,0,0,0,0,0] # 0~9까지의 개수 리스트
calc = str(num[0]*num[1]*num[2]) # 숫자 곱 str처리
for i in calc:
a[int(i)]+=1 # 숫자에 맞는 a의 인덱스에 1씩 추가.
for i in range(10): # 0~9의 개수 출력
print(a[i])
count함수가 있구나..
다시 풀면.
num = [int(input()) for i in range(3)] # 숫자 3개 받기
calc = list(str(num[0]*num[1]*num[2])) # 숫자 곱 str처리뒤 list로 변환 ex) 234 -> ['2','3','4']
for i in range(10):
print(calc.count(str(i))) # count 함수를 사용하여 0~9까지의 개수 반환
3052 나머지
result = []
for i in range(10):
n = int(input())
a = n%42
if a not in result: # 중복 여부 처리
result.append(a)
print(len(result))
set 함수를 이용하자...!!
result = []
for i in range(10):
n = int(input())
result.append(n%42) # 나머지 값 다 넣어주고
print(len(set(result))) # set으로 중복 없애준다.
1546 평균
n = int(input())
arr = list(map(int,input().split())) # 점수 공백 단위로 쪼개준 것을 int형으로 변환하고 list로 만듦
maxN = max(arr)
newArr = [arr[i]/maxN*100 for i in range(n)] # 조건 처럼 새로운 점수 생성
print(sum(newArr)/n)
8958 OX퀴즈
n = int(input())
resultArr = [] # 결과 점수 리스트
for i in range(n):
score = 0
scoreArr =[] # 임시 점수 리스트
ox = input()
for i in ox: # ex) "OOXOXXOO"
if i=='O':
score+=1 # 점수 증가
scoreArr.append(score) # 해당 인덱스 점수 추가
elif i=='X':
score = 0 # 점수 초기화
resultArr.append(sum(scoreArr)) # 임시 점수 리스트의 합을 결과 리스트에 넣어줌
for i in range(n):
print(resultArr[i])
굳이 배열을 많이 만들 필요가 없었다...
scoreArr를 변수로 만들어서 컨트롤 하는게 더 바람직하다.
또한 예제 출력을 하나씩 출력하게 만들어도 잘 돌아간다. (결과값을 따로 배열에 넣고 출력할 필요가 없음)
n = int(input())
resultArr = [] # 결과 점수 리스트
for i in range(n):
score = 0
tmp = 1
ox = input()
for i in ox: # ex) "OOXOXXOO"
if i=='O':
score+=tmp # 점수 증가
tmp +=1
else:
tmp =1 # 점수 초기화
resultArr.append(score) # 임시 점수 리스트의 합을 결과 리스트에 넣어줌
for i in range(n):
print(resultArr[i])
4344 평균은 넘겠지
n = int(input())
for i in range(n):
count = 0
score = list(map(int,input().split()))
score.pop(0) # 학생의 수 부분 제거
avg = sum(score)/len(score)
for i in range(len(score)): # 평균보다 작은 학생수 구함
if score[i] > avg:
count+=1
result = count/len(score)*100
print(f"{result:.3f}%") # format을 잘 이용하자.
format을 이용하면 편리하게 출력가능
반응형
'코딩테스트 > 백준 준비(과거)' 카테고리의 다른 글
(파이썬) 백준 1712, 1193, 2869, 10250, 2775, 2839, 1011 (0) | 2021.07.06 |
---|---|
(파이썬) 백준 11654, 11720, 10809, 2675, 1157, 1152, 2908, 5622, 2941, 1316 (0) | 2021.06.27 |
(파이썬) 백준 4673, 1065 (0) | 2021.06.26 |
(파이썬) 백준 2739, 15552, 11022, 2439, 10871, 10952, 1110 (0) | 2021.06.24 |
(파이썬) 백준 1330, 2753, 14681, 2884 (0) | 2021.06.24 |
댓글