백준

백준 4344번 평균은 넘겠지

hyunzxn 2022. 8. 4. 17:40

[문제 링크]

https://www.acmicpc.net/problem/4344

 

4344번: 평균은 넘겠지

대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.

www.acmicpc.net

 

 

[내가 짠 코드]

test = int(input())  # 테스트 케이스 횟수

for _ in range(test):
    nums = list(map(int, input().split()))
    avg = sum(nums[1:]) / nums[0]
    count = 0  # 평균 넘는 사람 세기 위한 카운트
    for i in nums[1:]:
        if i > avg:
            count += 1
    rate = (count / nums[0]) * 100  # 평균을 넘는 비율
    print(format(rate, ".3f") + "%")

 

 

[새로 알게 된 부분]

a = input().split() 

# 이렇게 작성하고 input에 1, 2를 입력하면 a = [1, 2] 식으로 리스트에 담긴다.

 

x = input()
n = map(int, x)

# 기본적으로 input으로 입력받는 값은 string의 형태를 띈다. 
# map(int, x)를 해주게 되면 x를 int로 바꿔주는 작업을 하게 된다. 그 결과를 n에 저장함.

 

nums = list(map(int, input().split()))

# input().split()은 공백을 기점으로 여러 개의 input을 한 번에 받을 수 있게 해줌
# 그런데 input으로 받은 값은 기본적으로 string
# 따라서 원활한 작업을 위해서 이것을 int로 바꿔주는 작업이 필요함
# 이 때 map 함수를 사용하면 쉽게 위의 작업을 해줄 수 있음
# map(실행할 함수, 데이터) 의 form을 가지고 있음
# map(int, input().split())은 다시 말해 입력받은 모든 input 값을 int로 바꿔주겠다는 뜻
# int도 함수로 보는듯?
# 그리고 그 값들을 list화 시키기 위해서 list()로 감싸줌
# 그리고 그 list를 nums라는 변수에 저장함

 

 

 

 

728x90

'백준' 카테고리의 다른 글

백준 4673번 셀프 넘버  (0) 2022.08.08
백준 1110번 더하기 사이클  (0) 2022.08.04
백준 2525번 오븐 시계 문제  (0) 2022.05.22