728x90
반응형

1546번 문제

import sys
import copy
while True: #N의 갯수 판독을위 한 while문
    try: #입력값들이 없을경우 except 구문 실행하여 종료
        N = int(sys.stdin.readline()) #N의 값 받아보기
    
        if N<0 or N>1000:
            print("N의 값 다시 입력하세요")
        else: #N의값이 맞을경우
            while True: 
                a= list(map(float,sys.stdin.readline().split(' ')))
                #a객체에 map함수를 활용하여 float형태로 리스트에 빈칸띄우면 저장한다
                if len(a) != N: #N의개수와 a리스트에 저장되어있는 요소의 개수가 다르다면
                    print("과목 개수가 {}개 입니다. 다시입력하세요.".format(len(a)))
                elif len(a) == N: #N의 개수와 a리스트에 저장되어있는 요소의 개수가 같다면
                    for i in range(len(a)):
                        if a[i]<0 or a[i]>100:
                            print("점수의 범위는 0점이상 100점이하입니다. 다시입력하세요")
                else:   
                    break
    except:
        break
zozak = copy.deepcopy(a) #deepcopy를 하게되면 a객체와 zozak 객체는 다른 객체
#그냥 copy()를 하게되면 연동되어있는 객체가 된다.
chadae = max(a) #max함수를 통해 chadae변수에 저장
average = 0
for i in range(len(a)):
    zozak[i] = (a[i]/chadae)*100
    average += float(zozak[i]) 
print(zozak)
print("{:.6f}".format(average/ len(a))) #소수점6자리까지 float형태로 출력해라

11번째줄 a = list(map(float,sys.stdin.readline().split())) ==> 이부분 헷갈렸는데, 한 변수(객체)안에 여러개의 값들을 map함수를 활용하여 리스트화 하여 저장할수 있음을 기억해야겠다.

 

23번째줄 deepcopy() == >깊은 복사copy()==>얕은 복사 의 차이점 꼭 기억하기!!!

 

31번째줄 format함수 표현법 잘기억하기!!!

728x90
반응형

+ Recent posts