DataStucture_2_04_생태학(4385)
DataStucture2_04생태학(4385)
문제
프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어진다.
입력
Red Alder
Ash
Aspen
Basswood
Ash
Beech
Yellow Birch
Ash
Cherry
Cottonwood
Ash
Cypress
Red Elm
Gum
Hackberry
White Oak
Hickory
Pecan
Hard Maple
White Oak
Soft Maple
Red Oak
Red Oak
White Oak
Poplan
Sassafras
Sycamore
Black Walnut
Willow
출력
Ash 13.7931
Aspen 3.4483
Basswood 3.4483
Beech 3.4483
Black Walnut 3.4483
Cherry 3.4483
Cottonwood 3.4483
Cypress 3.4483
Gum 3.4483
Hackberry 3.4483
Hard Maple 3.4483
Hickory 3.4483
Pecan 3.4483
Poplan 3.4483
Red Alder 3.4483
Red Elm 3.4483
Red Oak 6.8966
Sassafras 3.4483
Soft Maple 3.4483
Sycamore 3.4483
White Oak 10.3448
Willow 3.4483
Yellow Birch 3.4483
풀이
- input값이 없다면 break
- 딕셔너리에 키가 있는지 확인
- 키를 기준으로 오름차순 정렬하기 만약 sorted(dic.keys())라면 키값만 저장됨
코드
import sys
sys.stdin = open("input.txt","rt")
def input():
return sys.stdin.readline().rstrip()
# 값 넣는 part
dic = dict()
cnt = 0
while True:
s = input()
if s == "": # input값이 없다면 break
break
cnt += 1
if s in dic: # 딕셔너리에 키가 있는지 확인
dic[s] += 1
else:
dic[s] = 1 #
dic = sorted(dic.items()) # 키를 기준으로 오름차순 정렬하기 만약 sorted(dic.keys())라면 키값만 저장됨
# 출력 part
for val, key in dic:
num = (key/cnt)*100.0
if int(num) //2 ==0:
num = num + 0.0005
print(val, round(num, 4))
#소수점 넷째자리까지만 표현하고 싶다면, 파이썬 내장 함수인 round() 함수를 이용
# 반올림은 round함수를 이용해보자. round함수에 입력인자로 값이나 변수를 넣으면 소수점 첫째 자리에서 반올림 해 준다.
# 소수점 n번째 자리까지 반올림하고 싶다면, 두 번째 입력인자에 값을 넣으면 된다.
# 오류해결 !!!!!
#파이썬은 사사오입 원칙을 따른다. 반올림할 자리수가 5이면 앞자리 숫자가 짝수면 내림, 홀수면 올림이다.
# 4.5 의 경우는 결과 4 / 3.5의 경우 결과는 4 따라서 짝수인 경우 0.1을 더하여 round 함수를 사용해야 한다.
배운 것
처음에 파일을 다 읽어야 하는 줄 알고 pthon에서 파일 전체를 한줄 한줄 읽는 방법을 search해서 공부했다.
#f = open("input.txt", "rt")
- line = f.readline().strip()
- readline()/ 한 줄씩 읽는다 / .strip()으로 개행 문자를 지운다
- if not line: break # 더 이상 읽을 문자열이 없는 경우 "" 리턴한다.
- f.close()# 파일 닫기
프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어진다.
Red Alder
Ash
Aspen
Basswood
Ash
Beech
Yellow Birch
Ash
Cherry
Cottonwood
Ash
Cypress
Red Elm
Gum
Hackberry
White Oak
Hickory
Pecan
Hard Maple
White Oak
Soft Maple
Red Oak
Red Oak
White Oak
Poplan
Sassafras
Sycamore
Black Walnut
Willow
Ash 13.7931
Aspen 3.4483
Basswood 3.4483
Beech 3.4483
Black Walnut 3.4483
Cherry 3.4483
Cottonwood 3.4483
Cypress 3.4483
Gum 3.4483
Hackberry 3.4483
Hard Maple 3.4483
Hickory 3.4483
Pecan 3.4483
Poplan 3.4483
Red Alder 3.4483
Red Elm 3.4483
Red Oak 6.8966
Sassafras 3.4483
Soft Maple 3.4483
Sycamore 3.4483
White Oak 10.3448
Willow 3.4483
Yellow Birch 3.4483
- input값이 없다면 break
- 딕셔너리에 키가 있는지 확인
- 키를 기준으로 오름차순 정렬하기 만약 sorted(dic.keys())라면 키값만 저장됨
import sys
sys.stdin = open("input.txt","rt")
def input():
return sys.stdin.readline().rstrip()
# 값 넣는 part
dic = dict()
cnt = 0
while True:
s = input()
if s == "": # input값이 없다면 break
break
cnt += 1
if s in dic: # 딕셔너리에 키가 있는지 확인
dic[s] += 1
else:
dic[s] = 1 #
dic = sorted(dic.items()) # 키를 기준으로 오름차순 정렬하기 만약 sorted(dic.keys())라면 키값만 저장됨
# 출력 part
for val, key in dic:
num = (key/cnt)*100.0
if int(num) //2 ==0:
num = num + 0.0005
print(val, round(num, 4))
#소수점 넷째자리까지만 표현하고 싶다면, 파이썬 내장 함수인 round() 함수를 이용
# 반올림은 round함수를 이용해보자. round함수에 입력인자로 값이나 변수를 넣으면 소수점 첫째 자리에서 반올림 해 준다.
# 소수점 n번째 자리까지 반올림하고 싶다면, 두 번째 입력인자에 값을 넣으면 된다.
# 오류해결 !!!!!
#파이썬은 사사오입 원칙을 따른다. 반올림할 자리수가 5이면 앞자리 숫자가 짝수면 내림, 홀수면 올림이다.
# 4.5 의 경우는 결과 4 / 3.5의 경우 결과는 4 따라서 짝수인 경우 0.1을 더하여 round 함수를 사용해야 한다.
처음에 파일을 다 읽어야 하는 줄 알고 pthon에서 파일 전체를 한줄 한줄 읽는 방법을 search해서 공부했다.
#f = open("input.txt", "rt")
- line = f.readline().strip()
- readline()/ 한 줄씩 읽는다 / .strip()으로 개행 문자를 지운다
- if not line: break # 더 이상 읽을 문자열이 없는 경우 "" 리턴한다.
- f.close()# 파일 닫기
필요는 없었지만 알아둬라 ㅎㅎ
코멘트
#소수점 넷째자리까지만 표현하고 싶다면, 파이썬 내장 함수인 round() 함수를 이용
- 반올림은 round함수를 이용해보자. round함수에 입력인자로 값이나 변수를 넣으면 소수점 첫째 자리에서 반올림 해 준다.
- 소수점 n번째 자리까지 반올림하고 싶다면, 두 번째 입력인자에 값을 넣으면 된다.
- 오류해결 !!!!!
#파이썬은 사사오입 원칙을 따른다. 반올림할 자리수가 5이면 앞자리 숫자가 짝수면 내림, 홀수면 올림이다.- 4.5 의 경우는 결과 4 / 3.5의 경우 결과는 4 따라서 짝수인 경우 0.1을 더하여 round 함수를 사용해야 한다.
Author And Source
이 문제에 관하여(DataStucture_2_04_생태학(4385)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@angel_eugnen/DataStucture204생태학4385저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)