[백준_python] 소수점 조절, %%, 문자열, 언더스코어(_) ||1546, 4344

2021. 1. 12. 22:34·🎯PS

소수점

round(수, n)

반올림을 하여서 소수 n번째까지 출력되도록 하는 함수이다.

 

%0.nf 

소수 n번째까지 출력된다. (앞에 0생략 가능)
뒤에 식이 아니라 숫자가 와야 한다고 한다.
 

%

%s : 문자열(String)
%c : 문자 1개(character)
%d : 정수(Integer)
%f : 부동소수(floating-point)
%o : 8진수
%x : 16진수
%% : % (문자 % 자체)(Literal) ▶이거를 몰랐음 ㅋㅋㅋㅋ
 

_(언더바, 언더스코어)

: 마지막으로 실행된 값을 의미하기도 하고, 특정 값을 무시하는 경우, 자릿수 구분 등에 사용된다.
 
 


1. 평균
www.acmicpc.net/problem/1546

1546번: 평균

첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보

www.acmicpc.net

#평균
n = int(input())

score = list(map(int, input().split()))
M = max(score) #따로 선언을 해주어야 이후 for문 때 값이 변하는 현상이 생기지 않음.
sum = 0
for i in range(len(score)):
    score[i] = score[i]/M*100
    sum += score[i]

print(sum/len(score))

2. 평균은 넘겠지
www.acmicpc.net/problem/4344

4344번: 평균은 넘겠지

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

www.acmicpc.net

#평균은 넘겠지
c = int(input())

for i in range(c):
    stu = list(map(int, input().split(' ')))
   
    sum = 0
    count = 0
    for j in range(len(stu)-1):
        sum += stu[j+1]

    avg = sum/(stu[0])

    for k in range(len(stu)-1):
        if avg < stu[k+1]:
            count +=1
    result = count/stu[0]*100
    print("%.3f%%" %result)

for문을 일단 3개를 돌린다라는 게 마음에 안들었다. 근데 손이 그렇게 감 ㅋㅋㅋㅋㅋㅋ
마지막에 %를 표시해주는 부분에서 %%가 아닌 % 하나만 이용해주어서 ValueError: incomplete format라는 오류를 보기도 했었다.

#평균은 넘겠지
n = int(input())

for _ in range(n):  # 언더스코어 첫 사용..!
    stu = list(map(int, input().split(' ')))
    avg = sum(stu[1:])/stu[0]  # sum함수를 이용해서 리스트 1부터 끝까지 모두 합쳐준다.
    count = 0
    for i in stu[1:]:
        if i > avg:
            count += 1
    result = count/stu[0]*100
    print("%.3f%%" % result)

이 코드는 다른 분들꺼를 참조한 코드인데, 저 _를 다른 곳에서 보기도 했지만 사용해보긴 처음!
앞으로 활용할 일이 있으면 잊지말고 활용해봐야겠다.
 
리스트를 이용할 때 [1 : ]처럼 쓸 수 있다라는 것을 자꾸 까먹어서 아쉽다. 
다음에 리스트를 이용하는 문제에서는 위 코드처럼 사용해주어 좀 더 간단하게 만들어 봐야지....

반응형
저작자표시 비영리 동일조건 (새창열림)
'🎯PS' 카테고리의 다른 글
  • [백준_python] find(), dictionary(items(), keys(), values()) || 10809, 1157
  • [백준_python] 함수, not in || 15596, 4673
  • [백준_python] count, 런타임 에러 (ValueError), set( ), dictionary || 2577, 3052
  • [백준_python] math_factorial || 11050, 1110
dmaolon
dmaolon
프로그래밍을 공부한 내용을 기록하는 공간입니다.
  • dmaolon
    기록 남기기
    dmaolon
  • 전체
    오늘
    어제
    • ALL (260)
      • ➰ Series (5)
      • 🎯PS (168)
        • Algorithm (15)
      • ☕ Java (11)
      • 🍀 Spring Boot (29)
      • 💬 Database (9)
      • 🐣 Computer Science (14)
      • 👍 Daily (4)
      • 🎁ReactJS (4)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • 태그

    파이썬
    자바
    Spring
    dfs
    프로그래머스
    프로그래밍
    백준
    코딩
    알고리즘
    BFS
  • hELLO· Designed By정상우.v4.10.1
dmaolon
[백준_python] 소수점 조절, %%, 문자열, 언더스코어(_) ||1546, 4344
상단으로

티스토리툴바