<2562번 최댓값>
from sys import stdin
Nlist=[]
result = 0
resultNum = 0
for i in range(9):
K = int(stdin.readline())
Nlist.append(K)
for i in range(9):
if Nlist[i] > result:
result = Nlist[i]
resultNum = i+1
print(result)
print(resultNum)
성공이지만 길다
int(input) 을 append 안에 넣을 수 있다
굳이 비교 안 하고! max로 찾을수있는걸 까먹
리스트이름.index()로 인덱스 번호 얻을 수 있다.
from sys import stdin
Nlist=[]
for i in range(9):
Nlist.append(int(stdin.readline()))
print(max(Nlist))
print(Nlist.index(max(Nlist))+1)
<1546번 평균>
from sys import stdin
N=int(stdin.readline())
Nlist=list(map(int,stdin.readline().split()))
for i in range(N):
K = Nlist[i]/max(Nlist)*100
Nlist[i] = K
print(Nlist)
result = 0
for i in range(N):
result += Nlist[i]
result = result/N
print(result)
이건 틀렸다. 왜 틀렸냐면!
포문 안에 max()가 있기 때문에 max(Nlist)의 값이 매번 바뀐다....!
반복문 안에 고정되어야 할 값이 들어있진 않은지 유의하자
from sys import stdin
N=int(stdin.readline())
Nlist=list(map(int,stdin.readline().split()))
Max = max(Nlist)
for i in range(N):
K = Nlist[i]/Max*100
Nlist[i] = K
result = 0
for i in range(N):
result += Nlist[i]
result = result/N
print(result)
성공
여기선 반복문으로 평균을 처리했는데 sum()을 쓸 수 도 있다.
math랑 numpy 모듈을 사용할 수도 있다. 근데 이거는 numpy를 따로 설치해야 해서 돌려볼 수는 없었다
from sys import stdin
N=int(stdin.readline())
Nlist=list(map(int,stdin.readline().split()))
Max = max(Nlist)
for i in range(N):
K = Nlist[i]/Max*100
Nlist[i] = K
# sum() 평균
print(sum(Nlist)/N)
# Numpy 평균
import math
import numpy
from sys import stdin
N=int(stdin.readline())
Nlist=list(map(int,stdin.readline().split()))
Max = max(Nlist)
for i in range(N):
K = Nlist[i]/Max*100
Nlist[i] = K
# Numpy 평균
num_mean = numpy.mean(Nlist)
print(num_mean)
<8958번 OX퀴즈>
숫자형 대신 문자열을 하나씩 쪼개 리스트에 넣고 싶을 때에는. Nlist=list(stdin.readline())
Nlist=list(stdin.readline())
from sys import stdin
N=int(stdin.readline())
for i in range(N):
Nlist=list(stdin.readline())
result = 0
preResult = 0
for cha in Nlist:
if cha == "O":
preResult += 1
result += preResult
else:
preResult = 0
print(result)
성공~
result = 0
preResult = 0
를
result, preResult = 0, 0
으로 해도 된다.
<4344번 평균은 넘겠지>
meanNum = sum(Nlist)/len(Nlist) 평균 구하는 형식~
meanNum = sum(Nlist)/len(Nlist)
round(숫자, 자릿수)
소수점 제한 함수
주의!!!!
각 줄 첫번째는 학생 수이므로 꼭 빼고 계산해야 함!!!!
리스트이름[1:] 사용
from sys import stdin
N=int(stdin.readline())
for i in range(N):
Nlist=list(map(int,stdin.readline().split()))
meanNum = sum(Nlist[1:])/Nlist[0]
overStudent = 0
for k in range(Nlist[0]):
if Nlist[k+1] > meanNum:
overStudent += 1
result = round(overStudent/Nlist[0]*100 , 3)
print("{0}%".format(result))
성공~인줄알았는데 안됨
아무래도 소수점 자리가 0일 경우에는 소수점 3개 자리가 000이 아닌 0이 나오는 것이 문제인 듯하다.
round 대신 format 을 써야 할 듯하다.
https://ming-jee.tistory.com/124
[Python3 문법] format을 이용해서 소수점 이하 자릿수 표현하기
새벽에 알고리즘 문제 풀어보다가 시간초과 나서 머리 좀 식힐 겸, 파이썬 문법 연습 좀 할 겸 백준에서 안 풀어본 브론즈 문제 중에 하나를 골라서 풀어보았다. 4344. 평균은 넘겠지 (문제 링크: w
ming-jee.tistory.com
format 어려월
from sys import stdin
N=int(stdin.readline())
for i in range(N):
Nlist=list(map(int,stdin.readline().split()))
meanNum = sum(Nlist[1:])/Nlist[0]
overStudent = 0
for k in range(Nlist[0]):
if Nlist[k+1] > meanNum:
overStudent += 1
result = round(overStudent/Nlist[0]*100 , 3)
print(f'{result:.3f}%')
#print("{:.3f}%".format(result))
끗
1차원 배열까지 완료~
'짜잘IT' 카테고리의 다른 글
22.08.27 백준풀기 (0) | 2022.08.27 |
---|---|
22.08.21 백준풀기, 개미수열 (0) | 2022.08.15 |
22.08.13 백준풀기 (0) | 2022.08.13 |
22.08.12 백준풀기 (0) | 2022.08.12 |
22.08.11 백준풀기 (0) | 2022.08.11 |