문제)

선수지식 및 답안코드)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
#[선수지식] - 최솟값 구하기
arr=[5,3,7,9,2,5,2,6]#배열에서 가장 작은 값을 찾아보자
arrMin=float('inf')#변수에 무한대 숫자 저장, 배열 첫번째 요소를 저장해도 됨.
#for i in arr: 로도 접근 가능.
for i in range(len(arr)):# 배열 수를 하나씩 접근하며 가장 최소값 찾기
if arr[i]<arrMin:# <= 연산자 사용시 뒤에 있는 2가 탐색됨. (같은 2 라도 위치가 다름)
arrMin=arr[i]
print(arrMin)
###############문제 답안#############
import sys
#sys.stdin=open("input.txt","rt")
N=int(input())#학생 수 입력 받기
box=list(map(int,input().split()))#점수 입력받기
#소수 첫째 자리에서 반올림 하는 방법
#파이썬의 round 함수는 round_half_even 방식을 사용하므로
#0.5를 더해 int형 변환으로 소수를 버리는 방식으로 진행.
mean=int((sum(box)/N)+0.5)
min_interval=2147000000#무한대 수 저장
#평균과 가장 가까운 학생 찾기(최소값 찾기 원리와 동일)
for idx,score in enumerate(box):#인덱스 번호와 점수 동시 접근
res=abs(score-mean)#평균과 차이의 절대값
if res<min_interval:#최소 값보다 차이가 작으면 해당 학생 선택
min_interval=res
index=idx+1
grade=score
elif res==min_interval:#같으면 점수 비교해서 큰 점수를 가진 사람 선택(점수도 같다면 학생번호가 먼저인 학생 선택)
if score>grade:
index=idx+1
grade=score
print(mean, index)#결과 출력
|
cs |
'코딩테스트 with PYTHON' 카테고리의 다른 글
[python] 코딩테스트 대비 - 자릿수의 합 (0) | 2021.11.13 |
---|---|
[python] 코딩테스트 대비 - 정다면체 (0) | 2021.11.12 |
[python] 코딩테스트 대비 - K번째 큰 수 (0) | 2021.11.10 |
[python] 코딩테스트 대비 - K번째 수 (0) | 2021.11.10 |
[python] 코딩테스트 대비 - K번째 약수 (0) | 2021.11.10 |