๋ฌธ์
์ ์ ๋ ฌํ๊ธฐ 2: https://www.acmicpc.net/problem/2751
์ ์ ๋ ฌํ๊ธฐ 3: https://www.acmicpc.net/problem/10989
ํ์ด
[2751]์ ์ ๋ ฌํ๊ธฐ 2
์ฐ์ ์ฒซ๋ฒ์งธ ํ์ด๋ค.
N = int(input())
nums = []
for _ in range(N):
nums.append(int(input()))
nums.sort()
print(*nums, sep="\n")
๊ฐ์๊ธฐ '์๊ฐ์ด๊ณผ'๊ฐ ๋ ๋ฒ๋ ค์ ๋ญ๊ฐ ํ๋๋, input()๋๋ฌธ์ด์๋ค.
๋๊ฐ์ ๊ฒฝ์ฐ ์ฌ๋งํ๋ฉด int(input()) ๋๋ map(int, input().split())์ผ๋ก ํด๊ฒฐํ๋ ํธ์ธ๋ฐ, ์ด๊ฒ ์
๋ ฅ๋ฐ์ ๋ฐ์ดํฐ๊ฐ ๋ง์ ๊ฒฝ์ฐ์ ๊ณผ๋ถํ๊ฐ ๊ฑธ๋ฆฐ๋จ๋ค.
input()์ ์
๋ ฅ๊ฐ์ ๋ฐ์ ๋ ํ๋กฌํํธ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅํ๊ณ ์ฌ์ฉ์์ ์
๋ ฅ์ ๊ธฐ๋ค๋ฆฐ๋ค.
์ด ๊ณผ์ ์์ ์
๋ ฅ ๋ฒํผ๋ฅผ ๋น์ฐ๊ณ ์๋ก์ด ์
๋ ฅ์ ๋ฐ๊ธฐ ๋๋ฌธ์ ์
๋ ฅ ์๋๊ฐ ์๋์ ์ผ๋ก ๋๋ฆฌ๋ค.
์กฐ๊ฑด์ ์ ๋ณด๋ฉด ๋ฐ์ดํฐ์ ๊ฐฏ์ N์ 1<=N<=1,000,000์ ๋ฒ์๋ฅผ ๊ฐ๋๋ค.
๋ฐฑ๋ง๊ฑด์ ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ง ์๋ ์์ผ๋ฏ๋ก input()์ ์ ์ ํ์ง ์๋ค.
๊ทธ๋ผ ๋ญ ์ฌ์ฉํ๋ ํ๋๋ stdin์ด ์์๋ค.sys๋ชจ๋์ stdin.readline()ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋น ๋ฅธ ์๋๋ก ์
๋ ฅ์ ์ฒ๋ฆฌํ ์ ์๋ค.
์๋๋ ๋๋ฒ์งธ ํ์ด๋ค.
import sys
N = int(sys.stdin.readline())
nums = [int(sys.stdin.readline()) for _ in range(N)]
nums.sort()
print(*nums, sep="\n")
์
๋ ฅ๊ฐ์ ์ ์ฅํ ๋ฆฌ์คํธ nums๋ ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์
์ผ๋ก ๊ฐ๊ฒฐํ๊ฒ ์ฒ๋ฆฌํด์คฌ๋ค.
๊ฒฐ๊ณผ๋ ์ฑ๊ณต!
๋ค๋ฅธ ํด๋ต๋ ์ฐพ์๋ณด๋ค๊ฐ ํน์ดํ ์ฝ๋๋ฅผ ๋ฐ๊ฒฌํ๋ค.
Python3๋ก ํ์ดํ ์ฌ๋ ์ค ๊ฐ์ฅ ๋น ๋ฅธ ์ฝ๋๋ผ๊ณ ํ๋ค.
def sol():
a=[None]*2000001
b=map(int,open(0))
next(b)
for i in b:a[i]=1
print("\n".join(str(i) for i in range(-1000000,1000001,1) if a[i]))
sol()
์ฃผ์ด์ง๋ ์์ ๊ฐ์ ์ ๋๊ฐ์ด 1,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ฏ๋ก,
-1000000๋ถํฐ 0์ ํฌํจํ์ฌ 1000000๊น์ง, ์ด 2000001๊ฐ์ [None]์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ค.
๊ทธ ๋ค์ open(0)์ผ๋ก ๊ฐ์ ์
๋ ฅ๋ฐ๊ณ , map()์ ํตํด intํ์ผ๋ก ๋ณํ์ํจ๋ค.
๋๋ ์ด ์ฝ๋์์ open(0)์ ์ฒ์ ๋ดค๋ค... ์ ์ธ๊ณ.
๋ณดํต open()ํจ์๋ ํ์ผ์ ์ฝ๊ณ ์ธ ๋ ์ฌ์ฉํ์ง๋ง, 0์ ๋ฃ์ผ๋ฉด ํ์ค ์
๋ ฅ์ ๋ฐ์ ์ ์๋ค๊ณ ํ๋ค.
์ฆ, sys.stdin == open(0)์ผ๋ก ์ฌ์ฉํ ์ ์๋ค๋๊ฒ์ด๋ค.
๊ด๋ จ ๋ด์ฉ๋ค์ ์๋์์ ์ฐธ๊ณ ํ์ ๐
https://neogr.tistory.com/17
https://it-neicebee.tistory.com/118
๋ค์์ค์ ๋ณด๋ฉด ๋ ์ ๊ธฐํ ํจ์๊ฐ ์๋ค.next()์ธ๋ฐ, iterator ๊ฐ์ฒด ์์๋ฅผ ํ๋์ฉ ์ฝ์ด์ฌ ์ ์๋ค.
๋ฌธ์ ์์ ์
๋ ฅ ์ฒซ์ค์ด ์
๋ ฅ๊ฐ์ ๊ฐฏ์(N)์ด๊ธฐ ๋๋ฌธ์, next(b)๋ก N์ ๊ฑด๋๋ฐ๊ณ ์
๋ ฅ๊ฐ๋ค๋ง ์ทจ๊ธํ๋๊ฒ์ด๋ค.
๊ทธ๋ผ b๋ ์ฒซ์ค(N)์ ์ ์ธํ ์์ ์
๋ ฅ๊ฐ๋ค๋ง ๋จ์์๊ฒ ๋๊ณ ,
์ด๋ฅผ for๋ฌธ์ผ๋ก ์ํํ๋ฉฐ a[i]=1๋ก ํ ๋นํ๋๊ฒ์ด๋ค.
๋ง์ง๋ง์ผ๋ก a์ ์กด์ฌ๊ฐ๋ค์ "\n".join()์ผ๋ก ์ถ๋ ฅํด์ค๋ค.
์คํ์๊ฐ์ 692ms๋ก, ๋ด ์ฝ๋์ ์ ๋ฐ ๊ฐ๋...
ํ์ง๋ง ๋ฉ๋ชจ๋ฆฌํจ์จ์ ๋ ๋จ์ด์ง๋ ์ฃผ์ํ์.
[10989]์ ์ ๋ ฌํ๊ธฐ 3
ํต๊ณผํ๋ ํ์ด๋ค.
import sys
nums = [0] * 10001
input = sys.stdin.readline
N = int(input())
for _ in range(N):
nums[int(input())] += 1
for i in range(10001):
if nums[i] != 0:
for _ in range(nums[i]):
print(i)
์ ์ ๋ ฌํ๊ธฐ 2์ ๋ค๋ฅด๊ฒ ์ค๋ณต๊ฐ์ด ์กด์ฌํ๋ค.
์ฐ์ ์์ ๋ฒ์์ ๋ฐ๋ผ ๋ฆฌ์คํธ nums๋ฅผ ์ ์ธํด์ค๋ค.
๊ทธ ๋ค์ ์ฃผ์ด์ง N๊ฐ๋งํผ for๋ฌธ์ ๋ฐ๋ณตํ๋ฉฐ,nums[์
๋ ฅ๊ฐ]์ ๊ฐ์ 1์ฉ ์ฆ๊ฐ์์ผ์ค๋ค.
์ดํ ๋ฒ์๋งํผ for๋ฌธ์ ๋ฐ๋ณตํ๋ค.
ํด๋น ์ธ๋ฑ์ค์ ๊ฐ์ด 0์ด ์๋๊ฒฝ์ฐ, ์ธ๋ฑ์ค์ ๊ฐ ๋งํผ print(์ธ๋ฑ์ค)๋ฅผ ํด์ฃผ๋ฉด ๋๋ค.
์๋๋ถํฐ๋ ์คํจํ๋ ์ฝ๋๋ค.
์ฒซ๋ฒ์งธ ์ฝ๋. ์๊ฐ์ด๊ณผ๋ค.
import sys
input = sys.stdin.readline
N = int(input())
nums = [int(input()) for _ in range(N)]
nums.sort()
print(*nums, sep="\n")
๊ฐ๋จํ๊ฒ ์ ๋ ฅ๊ฐ๋ค์ ๋ฆฌ์คํธ๋ก ๋ง๋ค์ด ์ ๋ ฌ ํ ์ถ๋ ฅ.
๋๋ฒ์งธ ์ฝ๋. ์ด๋ฒ์ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ์๋ค.
import sys
nums = [0] * 10001
input = sys.stdin.readline
N = int(input())
for _ in range(N):
nums[int(input())] += 1
print("\n".join(str(i) for i, cnt in enumerate(nums) if cnt for _ in range(cnt)))
์ ๋ณด๋ฉด ์ถ๋ ฅ๋ถ๋ถ ์ธ์ ํต๊ณผ ์ฝ๋์ ๋ณ ๋ค๋ฅผ๊ฒ ์๋ค.
์ญ์ ๋ฌธ์ ๋ ์ถ๋ ฅ๋ถ๋ถ์ ์์๋ค.
๐จ join()์ list๋ iterable์ ๋ชจ๋ ์์๋ฅผ ํ๋์ ๋ฌธ์์ด๋ก ํฉ์น๋ ์ฐ์ฐ์ผ๋ก, ์ด ๊ณผ์ ์์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ฆ๊ฐํ ์ ์๋ค.
+
์ถ๊ฐ๋ก ๊ฐํ๋ฌธ์(\n)๊ฐ ํฌํจ๋ ์ํ๋ก map()์ ์ฌ์ฉํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
word = ๊ฐํ๋ฌธ์๊ฐ ํฌํจ๋ ๋ฌธ์์ด์ด๋ผ๊ณ ์น์.int(word)๋ ๋ฌธ์ ๊ฐ ์๋ค. int()๊ฐ ๊ฐํ๋ฌธ์๋ฅผ ์ ๊ฑฐํ ๊ฐ์ผ๋ก ๋ฐํํด์ค๋ค.
ํ์ง๋ง map(int, words)๋ ์๋ฌ๋ค.int()๋ณด๋ค map()์ด ๋จผ์ ์คํ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์ฃผ์.
์ฐธ๊ณ
https://develop247.tistory.com/347
[ํ์ด์ฌ/Python] ๋ฐฑ์ค 2751๋ฒ ์ ์ ๋ ฌํ๊ธฐ 2
[ํ์ด์ฌ/Python] ๋ฐฑ์ค 2751๋ฒ ์ ์ ๋ ฌํ๊ธฐ 2 2751๋ฒ: ์ ์ ๋ ฌํ๊ธฐ 2 ์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 ≤ N ≤ 1,000,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ์๊ฐ ์ฃผ์ด์ง๋ค. ์ด ์๋ ์ ๋๊ฐ์ด 1,000,000๋ณด๋ค ์๊ฑฐ๋
develop247.tistory.com
์ฒซ๋ฒ์งธ ํ์ด๋ ๊ด์ฐฎ๊ณ , ๋๋ฒ์งธ ํ์ด๋ ์ ๊ธฐํจ. open(), next() ๋ฑ ํ์์ ์์ฐ๋ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ์๋๋ฐ, ํจ์จ์ด ์ข์๊ฐ๋ณด๋ค.
https://lute3r.tistory.com/240
[Python] Baekjoon ๋ฐฑ์ค 2751๋ฒ ์ ์ ๋ ฌํ๊ธฐ 2
[Python] Baekjoon ๋ฐฑ์ค 2751๋ฒ ์ ์ ๋ ฌํ๊ธฐ 2 ๋ฌธ์ N๊ฐ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ด๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ์ ๋ ฅ ์ฒซ์งธ ์ค์ ์์ ๊ฐ์ N(1 ≤ N ≤ 1,000,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถ
lute3r.tistory.com
input()๊ณผ sys.stdin.readline()์ ์ฐจ์ด
[๋ฐฑ์ค] 2751๋ฒ : ์ ์ ๋ ฌํ๊ธฐ 2 (ํ์ด์ฌ)
ํ์ด์ฌ ๋ด์ฅํจ์์ธ sorted๋ฅผ ์ฌ์ฉํด์ ํ์ด์ฃผ์๋ค.(sort๋ ๊ฐ๋ฅํ๋ค. sort๋ ์ ๋ฐฐ์ด๊น์ง ์์ , sorted๋ ์๋ฐฐ์ด ๊ฐ์ ์ํฅ์ ๋ผ์น์ง ์๋๋ค.)ํฉ๋ณ์ ๋ ฌ๋ก ํ์๋๋ฐ ์ฒซ ์ ์ถ์์ ํ๋ ธ๋ค.(j๋ฅผ i๋ก ์๋ชป์ผ
velog.io
ํฉ๋ณ์ ๋ ฌ์ ์ฌ์ฉํ ๋ฐฉ์
[Python] ๋ฐฑ์ค 10989๋ฒ ์ ์ ๋ ฌํ๊ธฐ 3 /๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ ์ค๋ฅ ํด๊ฒฐ
import sys input = sys.stdin.readline n = int(input()) arr = [] for i in range(n): arr.append(int(input())) arr.sort() for i in arr: print(i) ์ ๋ ฅ๋ฐ์ ๊ฐ์ ๋น ๋ฐฐ์ด arr์ append ํ, sort()ํจ์๋ก ์ค๋ฆ์ฐจ์ํ์ฌ ์ถ๋ ฅํ๋ ํ์์ ์๊ฐ
kill-xxx.tistory.com
๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ ํด๊ฒฐ