๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/4358)
<์ํํ>
๋ฌธ์
์ํํ์์ ๋๋ฌด์ ๋ถํฌ๋๋ฅผ ์ธก์ ํ๋ ๊ฒ์ ์ค์ํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋น์ ์ ๋ฏธ๊ตญ ์ ์ญ์ ๋๋ฌด๋ค์ด ์ฃผ์ด์ก์ ๋, ๊ฐ ์ข ์ด ์ ์ฒด์์ ๋ช %๋ฅผ ์ฐจ์งํ๋์ง ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ค์ด์ผ ํ๋ค.
์ ๋ ฅ
ํ๋ก๊ทธ๋จ์ ์ฌ๋ฌ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ํ ์ค์ ํ๋์ ๋๋ฌด ์ข ์ด๋ฆ์ด ์ฃผ์ด์ง๋ค. ์ด๋ค ์ข ์ด๋ฆ๋ 30๊ธ์๋ฅผ ๋์ง ์์ผ๋ฉฐ, ์ ๋ ฅ์๋ ์ต๋ 10,000๊ฐ์ ์ข ์ด ์ฃผ์ด์ง๊ณ ์ต๋ 1,000,000๊ทธ๋ฃจ์ ๋๋ฌด๊ฐ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฃผ์ด์ง ๊ฐ ์ข ์ ์ด๋ฆ์ ์ฌ์ ์์ผ๋ก ์ถ๋ ฅํ๊ณ , ๊ทธ ์ข ์ด ์ฐจ์งํ๋ ๋น์จ์ ๋ฐฑ๋ถ์จ๋ก ์์์ 4์งธ์๋ฆฌ๊น์ง ๋ฐ์ฌ๋ฆผํด ํจ๊ป ์ถ๋ ฅํ๋ค.
๋ฌธ์ ํ์ด
- ์ด๊ธฐ ์ฝ๋: ํ๋ ธ์ต๋๋ค
import sys
if __name__=='__main__':
dict={}
all=0
while True:
x=sys.stdin.readline().rstrip()
all+=1
if not x:
break
if x not in dict:
dict[x]=1
else:
dict[x]+=1
dict=sorted(dict.items())
for i in dict:
print(i[0]+' %.4f' %(i[1]/all *100))
์ฒ์ ์ด ๋ฌธ์ ๋ฅผ ๋ณด๋ฉด์ ์ด๋ ค์ ๋ ์ ์ ๋จ ํ ๊ฐ์ง์๋ค.
โ ์ด๋ป๊ฒ ์ฌ๋ฌ ์ค ์ ๋ ฅ์ ๋ฐ๋๊ฐ?
์ด ๋ถ๋ถ์ ๋ชฐ๋ผ์ ๊ฒ์์ ํตํด ํด๊ฒฐํ ์ ์์๋ค. ๋จผ์ , while ๋ฌธ์ ์ฌ์ฉํ์ฌ ๋ฌดํ ๋ฐ๋ณตํ๋ฉฐ ์ ๋ ฅ์ ๋ฐ๋๋ค. rstrip์ ํตํด ๋ฌธ์์ด์ ๋์ ์ญ์ ํ์ฌ ๊ทธ ๊ฐ์ด ์์ผ๋ฉด while๋ฌธ์ ๋น ์ ธ๋๊ฐ๋๋ก ํ๋ค.
์ด ๋ถ๋ถ์ ํด๊ฒฐํ ํ ๋ต์ด ์กฐ๊ธ ๋ฌ๋์ง๋ง ๋ '์ด๊ฒ ์๋๋ฉด ๋ต์ด ๋ญ๋~?'์ด๋ผ๋ ์๊ฐ์ ๊ฐ์ง๊ณ ๋ฐ๋ก ์ ์ถํ๋ค.
๊ฒฐ๊ณผ๋ 'ํ๋ ธ์ต๋๋ค.'
ํ์ฐธ ๊ณ ๋ฏผํ ๋์ ํด๊ฒฐํ ์ ์์ด ๋ชจ๋ ๊ณณ์ ์ฐพ์๋ณด๊ธฐ ์์ํ๋ค. ํ์ง๋ง ๋ค๋ค ๋์ ์ฝ๋์ ๋น์ทํ๋ค.
๋ค๋ฅธ ๋ฌธ์ ํด๊ฒฐํ ๊น...๋ผ๊ณ ์๊ฐํ๋ฉฐ ๋ง์ง๋ง์ผ๋ก ๋ค์ ๋ด ์ฝ๋๋ฅผ ํ์ธํด๋ณธ ๊ฒฐ๊ณผ...ใ
์ด ๋๋ฌด ๊ฐ์๋ฅผ ์ ๋ ๋ง์ง๋ง์ ํ๋๋ฅผ ๋ ์ธ๋ฒ๋ฆฐ ๊ฒ์ด์๋ค.
ํํํจ๊ณผ ์ถฉ๊ฒฉ์ ์ด์๋ค.
์์ ๋ฌธ์ ์ ์ ์ฝ์น ์ฝ๋์ด๋ค.
- my solution
import sys
if __name__=='__main__':
tree={}
cnt=0
while True:
x=sys.stdin.readline().rstrip()
if not x: # ์
๋ ฅ ๋
break
if x not in tree: # key๊ฐ์ด ์์ผ๋ฉด
tree[x]=1
else: # key๊ฐ์ด ์์ผ๋ฉด
tree[x]+=1
cnt += 1 # ์ด ๋๋ฌด ์
tree=sorted(tree.items()) # ์ฌ์ ์ ์ ๋ ฌ
for i in tree: # ์์์ 4์งธ์๋ฆฌ๊น์ง ๋ฐ์ฌ๋ฆผํด์ ์ถ๋ ฅ
print(i[0]+' %.4f' %(i[1]/cnt *100))
- while
- ์ ๋ ฅ
- ๋ ์ด์ ์ ๋ ฅ์ด ์์ผ๋ฉด break
- dict์ key๊ฐ์ด ์์ผ๋ฉด ์ถ๊ฐ
- dict์ key๊ฐ์ด ์์ผ๋ฉด value +1
- ์ด ๋๋ฌด ์ count - ์ฌ์ ์ ์ ๋ ฌ
- ์์์ ๋ท์งธ ์๋ฆฌ๊น์ง ๋ฐ์ฌ๋ฆผํด์ ์ถ๋ ฅ
์๊ฐ๐ค
๋ด๊ฐ ํด๊ฒฐํ์ง ๋ชปํ ์ด์ ๋ฅผ ๋ฐ๊ฒฌํ ์๊ฐ ์ ๋ง ์ถฉ๊ฒฉ์ ์ด์๋ค. ์์ฃผ ์์ฃผ ์ฌ์ํ(?) ์ค์๋ก ๋ช ๋ถ ๋์ ํค๋งค๋ค๋..
๋ค์๋ถํฐ๋ ํ์คํ๊ฒ ๋์ ์ฝ๋๋ฅผ ๋ค์ ๋ด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ ๋ฌธ์ ์๋ค.
์ด ๊ธฐํ์ ๋ค๋ฅธ ์ฌ๋๋ค ์ฝ๋๋ฅผ ๋ณด๋ ๋ค๋ฅธ ์ฌ๋๋ค์ ์์์ ๋ท์งธ ์๋ฆฌ๊น์ง ๋ฐ์ฌ๋ฆผํด์ ์ถ๋ ฅํ๋ ๋ถ๋ถ์์ round์. f์์ ๊ณ ๋ฏผํ๋ ๊ฒ ๊ฐ๋ค. ๋ ์์ ๋ค๋ฅธ ๋ถ๋ถ์์... ๋๋ฌผ์ ํ๋ ธ์ง๋ง
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 11660_๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 5 (0) | 2022.02.22 |
---|---|
[Baekjoon] 11051_์ดํญ ๊ณ์ 2 (0) | 2022.02.21 |
[Baekjoon] 18352_ํน์ ๊ฑฐ๋ฆฌ์ ๋์ ์ฐพ๊ธฐ (0) | 2022.02.04 |
[Baekjoon] 11724_์ฐ๊ฒฐ ์์์ ๊ฐ์ (0) | 2022.01.26 |
[Baekjoon] 5567_๊ฒฐํผ์ (0) | 2022.01.25 |