ally
@ally
Students
786
Reviews
41
Course Rating
5.0
- ์๊ณ ๋ฆฌ์ฆ ๋ธ๋ก๊ทธ ์ด์์ค
- ํ๋ก๊ทธ๋๋ฐ ๋ํ ๋ค์ ์์
- ICPC Seoul Regional 3ํ ์ง์ถ (2021, 2022, 2023)
- 2024 ICPC Asia Pacific Championship ์ง์ถ
Courses
Reviews
- World Championship Qualifier's Guide to Coding Tests A to Z (with Python)
- World Championship Qualifier's Guide to Coding Tests A to Z (with Python)
- World Championship Qualifier's Guide to Coding Tests A to Z (with Python)
- World Championship Qualifier's Guide to Coding Tests A to Z (with Python)
- World Championship Qualifier's Guide to Coding Tests A to Z (with Python)
Posts
Q&A
๋ฐฑ์ค์์ queue.PriorityQueue() ์ฌ์ฉ ์ ๋ฐํ์์๋ฌ๊ฐ ๋ฉ๋๋ค.
์๋ ํ์ธ์, ksi2564๋!(์ง๋ฌธ ๋ฑ๋ก ์๋์ด ์ ์์ ์ข ๋ฆ๊ฒ ๋ต๋ณ๋๋ ธ๋ค์.. ๐ ) BOJ 1753 ์ต๋จ๊ฒฝ๋ก ๋ฌธ์ ๋ฅผ PyPy3 + PriorityQueue๋ก ์ ์ถํ ๊ฒฝ์ฐ ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์ํ๋ ์ด์ ๋,๋ฐฑ์ค์์ ์ ๊ณตํ๋ PyPy3 ์ฑ์ ํ๊ฒฝ์ด queue.PriorityQueue๋ฅผ ์ ์์ ์ผ๋ก ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค. PyPy3 ์์ฒด๋ PriorityQueue ๋ชจ๋์ ํฌํจํ๊ณ ์์ง๋ง, ๋ฐฑ์ค์ PyPy3 ์คํ ํ๊ฒฝ์์๋ PriorityQueue ๋ด๋ถ ๋์ ๊ณผ์ ์์ ์์ธ๊ฐ ๋ฐ์ํ์ฌ ํ๋ก๊ทธ๋จ์ด ์คํ ๋์ค ์ข ๋ฃ๋๋ ๋ฌธ์ ๊ฐ ํ์ธ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋์ผํ ์ฝ๋๋ผ๋ Python3์์๋ ํต๊ณผํ์ง๋ง PyPy3์์๋ ๋ฐํ์ ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด์ ๊ฐ์ ์ด์ ๋ก, ์ค์ ๋ฌธ์ ํด๊ฒฐ ์์๋ heapq๋ฅผ ์ฐ์ ์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ฐฉ์์ ์ถ์ฒ๋๋ฆฝ๋๋ค. ์ถ๊ฐ๋ก, ์ด๋ฒ ๊ธฐํ์ ์์๋ณธ ๋ด์ฉ์ธ๋ฐ queue.PriorityQueue๋ ์๋ ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์ ์ํ ๋๊ธฐํ ํ๋ก ์ค๊ณ๋์ด ์์ด ๋ฝ(lock) ์ฒ๋ฆฌ ๋ฑ ๋ถ๊ฐ์ ์ธ ์ค๋ฒํค๋๊ฐ ์กด์ฌํฉ๋๋ค. ๋ฐ๋ฉด heapq๋ ๊ฐ๋ณ๊ณ ๋น ๋ฅธ ์ต์ ํ ๊ธฐ๋ฐ ๊ตฌํ์ผ๋ก, ๋ฌธ์ ํ์ด๋ ์ฝ๋ฉ ํ ์คํธ ํ๊ฒฝ์์ ๋ ํจ์จ์ ์ผ๋ก ๋์ํฉ๋๋ค. ๊ฐ์์์๋ ์ฌ์ฉ๋ฒ์ ์ง๊ด์ฑ์ ์ํด PriorityQueue๋ฅผ ์์๋ก ๋ค์์ง๋ง, ์ค์ ์์๋ ๋ง์ํ์ ๋๋ก ํจ์จ์ฑ์ ๊ณ ๋ คํ๋ฉด heapq๋ฅผ ๊ธฐ๋ณธ ์ฐ์ ์์ ํ๋ก ์ฌ์ฉํ๋ ๋ฐฉ์์ด ๋ ์์ ์ ์ด๊ณ ์ ํฉํฉ๋๋ค. ์ง๋ฌธ์ ๋ํด ๋ง์กฑ์ค๋ฌ์ด ๋ต๋ณ์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!์ถ๊ฐ๋ก ๊ถ๊ธํ์ ์ ์ด๋ ๋ ์์ธํ ์ค๋ช ์ด ํ์ํ์๋ค๋ฉด ์ธ์ ๋ ์ง ๋ง์ํด ์ฃผ์ธ์. ๐
- 0
- 2
- 32
Q&A
DP ์๊ณ ๋ฆฌ์ฆ index 0 ์ด์ ?
์๋ ํ์ธ์, ๊น๊ฐ๋๋!DP Table์ ๋ง๋ค ๋ ๋ณดํต 0-index ๋ฐฉ์ ๋๋ 1-index ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.0-index ๋ฐฉ์: ์ธ๋ฑ์ค๋ฅผ 0๋ถํฐ ์ฌ์ฉํ๋ ๋ฐฉ์1-index ๋ฐฉ์: ์ธ๋ฑ์ค๋ฅผ 1๋ถํฐ ์ฌ์ฉํ๋ ๋ฐฉ์ ๋ฌธ์ ์ค๋ช ์์ ๋ณดํต '์ฒซ ๋ฒ์งธ ์ง', '1๋ฒ๋ถํฐ' ์ฒ๋ผ 1๋ถํฐ ์์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์, ์ ๊ฐ์ ๊ฒฝ์ฐ์ DP Table์ ๋ง๋ค ๋ ๊ธฐ๋ณธ์ ์ผ๋ก 1-index ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฑธ ์ ํธํฉ๋๋ค.์ธ๋ฑ์ค 0์ธ ๋ถ๋ถ์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ์๋, ๋ฌธ์ ์ค๋ช ๊ณผ์ ์ผ์น๋ฅผ ์ค์ํ๊ฒ ์๊ฐํ์ฌ 1-index๋ฅผ ์ฌ์ฉํ๋ ํธ์ ๋๋ค. (์ด๋ฒ ๋ฌธ์ ํฌํจ) ์๋ง DP ๊ด๋ จ ๊ฐ์๋ฅผ ์ด์ด์ ์๊ฐํ๋ค ๋ณด๋ฉด, DP Table์ ๋ง๋ค ๋ (0-index๋ณด๋ค) 1-index๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ํ๋ ๊ฒ ์ง๊ด์ ์ด๋ผ๋ ๊ฒ์ ๋๋ผ์ค ์ ์์ ๊ฒ๋๋ค!๋ฌธ์ ์์ ์ค๋ช ํ๋ ๋ฒํธ์ ์ผ์นํ๊ฒ ์ฝ๋ ์์ฑ ๊ฐ๋ฅ (์ฆ, dp[i]๋ i๋ฒ์งธ ์ง๊ณผ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์๋ฏธ)์ด๊ธฐ๊ฐ ์ฒ๋ฆฌ๋ฅผ ํ์ง ์์ ๊ฒฝ์ฐ์, ์ธ๋ฑ์ค 0์ธ ๋ถ๋ถ์ ํน์ ๊ฐ์ ๋ฃ์ด ๋ฌ์ผ ํจ. (์๋ ์ด๋ฏธ์ง๋ BOJ 1149 ์๋ฃ์ ๊ด๋ จ ์ค๋ช ๋ถ๋ถ์ ์บก์ฒํ ์ฌ์ง์ ๋๋ค)(์ฌ์ง) ๊ฒฐ๋ก ์ ์ผ๋ก, ์ด๋ฒ ๋ฌธ์ ๋ง ๋ดค์ ๋ ์ง๋ฌธ์๋์ด ๋ง์ํ์ ๋๋ก 0-index ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉํ์ฌ ํ์ด๋ ๋ฌด๋ฐฉํฉ๋๋ค. ์ดํ์ ๊ฐ์๋ฅผ ๋ค์ด๋ 0-index๊ฐ ํธํ์๋ค๋ฉด ๊ทธ๋ ๊ฒ ์ฝ๋ ์คํ์ผ์ ์ก์๋ ๋ฌด๋ฐฉํฉ๋๋ค! ์ง๋ฌธ์ ๋ํด ๋ง์กฑ์ค๋ฌ์ด ๋ต๋ณ์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!์ถ๊ฐ๋ก ๊ถ๊ธํ์ ์ ์ด๋ ๋ ์์ธํ ์ค๋ช ์ด ํ์ํ์๋ค๋ฉด ์ธ์ ๋ ์ง ๋ง์ํด ์ฃผ์ธ์. ๐
- 0
- 2
- 31
Q&A
(์๊ฐ ์ด๊ณผ) BOJ 1342 ๊ด๋ จํ์ฌ ์ง๋ฌธ์ด ์์ต๋๋ค
์๋ ํ์ธ์, Sung Hyun Hong๋! (์ง๋ฌธ ๋ฑ๋ก ์๋์ด ์ ์์ ์ข ๋ฆ๊ฒ ๋ต๋ณ๋๋ ธ๋ค์.. ๐ ) Counter ์ปฌ๋ ์ ์ ์ด์ฉํ๋ฉด ์๊ฐ ์ด๊ณผ๊ฐ ๋๋ ์ด์ ๊ฒฐ๋ก ๋ถํฐ ๋ง์๋๋ฆฌ๋ฉด Counter ๊ฐ์ฒด์์ ์์๋ฅผ ์กฐํํ๋ ์ฐ์ฐ์ด Dict ๊ฐ์ฒด์์ ์์๋ฅผ ์กฐํํ๋ ์ฐ์ฐ๋ณด๋ค ์ฝ๊ฐ ๋(1-3๋ฐฐ ์ ๋) ๋๋ ค์ ์๊ธฐ๋ ํ์์ ๋๋ค. Counter ๊ฐ์ฒด์์ ์์๋ฅผ ์กฐํํ๋ ์ฐ์ฐ ๋ํ ๋ด๋ถ์ ์ผ๋ก๋ Dict ๊ฐ์ฒด๋ก ๊ตฌํ๋์ด ์์ง๋ง, ์ก๋คํ ์ฐ์ฐ๋ค(๋ฉ์๋๋ฅผ ํธ์ถํ๋ ์ฐ์ฐ, ํค๋ฅผ ๊ฒ์ฌํ๋ ์ฐ์ฐ)์ด ์ถ๊ฐ์ ์ผ๋ก ๋ค์ด๊ฐ์ ์ด์ง ๋ ๋๋ฆฝ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ์ด์ ๋๋ฌธ์ Dict๋ก ํค๋ฅผ ์กฐํํ๋ ๊ฒ๋ณด๋ค ์ด์ง ๋ ๋๋ฆฐ ๊ฒ์ด์ฃ . ๋ณดํต ๋ฌธ์ ์์๋ ์ด๋ฌํ ์ฐจ์ด๊ฐ ํฌ๊ฒ ์์ฉํ์ง ์์ง๋ง, ์ด๋ฒ ๋ฌธ์ ์์๋ ์ฐ์ฐ ํ์๊ฐ ํฌ๋ค ๋ณด๋ ์๊ฐ ์ด๊ณผ ์ฌ๋ถ๋ฅผ ๊ฑธ์ ํ ์ ๋๋ก ์์ฉํ ๊ฒ์ ๋๋ค. ์ ๋ฆฌํ์๋ฉด, Counter ๊ฐ์ฒด์์ ์์๋ฅผ ์กฐํํ๋ ์ฐ์ฐ ๋ํ ๋ด๋ถ์ ์ผ๋ก Dict๋ฅผ ์ฌ์ฉํ์ง๋ง ์ฌ๋ฌ ์ฐ์ฐ์ด ๋ํด์ ธ Dict๋ก ์์๋ฅผ ์กฐํํ๋ ๊ฒ๋ณด๋ค ์ด์ง ๋ ๋๋ ค ์๊ฐ ์ด๊ณผ๊ฐ ๋๋ ๊ฒ์ ๋๋ค. ์๋์ ๊ฐ์ด Counter ๊ฐ์ฒด๋ฅผ Dict๋ก ๋ฐ๊ฟ์ ์กฐํํ๋ ๋ฐฉ์์ผ๋ก๋ง ๋ฐ๊ฟ๋ ํต๊ณผํ๋ ๊ฑธ ์ ์ ์์ต๋๋ค.from itertools import permutations from collections import Counter s = input() def sol(lev): global s, counter, choose, ans # base case if lev == len(s): ans += 1 return # recursive case for k in chars: if counter[k] == 0: continue if (not choose) or (choose[-1] != k): counter[k] -= 1 choose.append(k) sol(lev + 1) choose.pop() counter[k] += 1 counter = Counter(s) chars = tuple(counter.keys()) counter = dict(counter) # ์ถ๊ฐ๋ ๋ถ๋ถ choose = [] ans = 0 sol(0) print(ans) Python3์ PyPy3 ์ฐจ์ด์ Python3์ PyPy3 ๋ชจ๋ ํ์ด์ฌ ์ปดํ์ผ๋ฌ์ด๋ฉฐ, ์ปดํ์ผํ๋ ๋ฐฉ์์ ์ฐจ์ด๊ฐ ์์ต๋๋ค. PyPy3๋ Python3์ ๋นํด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์ฐ๋ ๋์ ์ ํจ์จ์ ์ผ๋ก ์ปดํ์ผํ๋ ํน์ง์ด ์์ด ๋๊ฐ์ ์ฝ๋๋ผ๋ PyPy3์์ ๋ ๋น ๋ฅด๊ฒ ๋์๊ฐ๋ ๊ฒฝํฅ์ด ์์ต๋๋ค. ํ์ง๋ง Python3๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ์๋ํ๋ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ด ์์ ๋ฌธ์ ์์๋ ์ฃผ์ํด์ผ ํฉ๋๋ค. ์ด ๋ถ๋ถ ๊ด๋ จํด์๋ ์น์ 2์ 16. ๐ ๋ฐฑ์ค์ ํ์ด์ฌ ์ฝ๋๋ฅผ ์ ์ถํ ๋ ์ฃผ์ํ ์ ๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ง๋ฌธ์ ๋ํด ๋ง์กฑ์ค๋ฌ์ด ๋ต๋ณ์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!์ถ๊ฐ๋ก ๊ถ๊ธํ์ ์ ์ด๋ ๋ ์์ธํ ์ค๋ช ์ด ํ์ํ์๋ค๋ฉด ์ธ์ ๋ ์ง ๋ง์ํด ์ฃผ์ธ์. ๐
- 1
- 2
- 43
Q&A
BFS, DFS
์๋ ํ์ธ์, ์๊ตญ์๋!๋๋ถ๋ถ์ ๊ฒฝ์ฐ DFS๋ก ํ ์ ์๋ ๋ฌธ์ ๋ BFS๋ก๋ ํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ผ๋ฐ์ ์ธ ๊ทธ๋ํ ํ์ ๋ฌธ์ ์์๋ DFS๊ฐ ๋ค์๊ณผ ๊ฐ์ ์ด์ ๋ก ๋ ์ ํธ๋ฉ๋๋ค. DFS๋ ๊ทธ๋ํ ํ์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐDFS๋ โ๊ทธ๋ํ๋ฅผ ํ์ํ๋คโ๋ ๋ชฉ์ ์ ๊ฐ์ฅ ์ง๊ด์ ์ผ๋ก ๋๋ฌ๋ด๋ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. DFS๋ก ์ถฉ๋ถํ ํ๋ฆฌ๋ ๋ฌธ์ ๋ฅผ ๊ตณ์ด BFS๋ก ๊ตฌํํ๋ค๋ฉด, ์ฝ๋๋ฅผ ์ฝ๋ ์ ์ฅ์์ โ์ต๋จ ๊ฑฐ๋ฆฌ๊ฐ ์ค์ํ ์ํฉ๋ ์๋๋ฐ ์ BFS๋ฅผ ์ผ์ง?โ๋ผ๋ ์๋ฌธ์ ๊ฐ์ง ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํน๋ณํ ์ด์ ๊ฐ ์๋ค๋ฉด ๊ธฐ๋ณธ์ ์ธ ํ์์ DFS๋ก ๊ตฌํํ๋ ๊ฒ์ด ์์ฐ์ค๋ฝ์ต๋๋ค. BFS ๋๋น DFS์ ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ฑ์๊ฐ ๋ณต์ก๋๋ DFS์ BFS ๋ชจ๋ O(V+E)๋ก ๋์ผํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ฉ๋ชจ๋ฆฌ ์ธก๋ฉด์์๋ DFS๊ฐ ๋ ์ ๋ฆฌํ ๊ฒฝํฅ์ด ์์ต๋๋ค. DFS๋ ๋ค์ ๋ ธ๋๋ฅผ ๋ฐ๋ก ํ์ํ๋ ๋ฐ๋ฉด, BFS๋ ๋ค์ ๋ ธ๋๋ค์ ๋ชจ๋ ํ์ ๋ด์ ๋์์ผ ํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์์ ๋ถ๋ฆฌํ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์์ฉ ๋ฌธ์ ๋ก์ ํ์ฅ์ฑ๊ทธ๋ํ ํ์์ ์์ฉํ๋ ๋ค์ํ ๋ฌธ์ ๋ค์ ๋๋ถ๋ถ DFS ๋ณํ์ผ๋ก ํด๊ฒฐ๋ฉ๋๋ค. ๋ํ์ ์ผ๋ก ๋ฐฑํธ๋ํน ์๊ณ ๋ฆฌ์ฆ์ด ์ด์ ํด๋นํฉ๋๋ค. BFS๋ก๋ ๊ตฌํ์ ๊ฐ๋ฅํ์ง๋ง, ํ์ ๊ฒฝ๋ก๋ฅผ ์ ๋ถ ํ์ ๋ฃ์ด์ผ ํ๋ฏ๋ก ๊ฒฝ์ฐ์ ๋ฐ๋ผ DFS๋ณด๋ค ํจ์ฌ ๋ง์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ชจํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์, ํน๋ณํ ์ ์ฝ์ด ์๋ค๋ฉด ๊ทธ๋ํ ํ์์ DFS๋ก ์ ๊ทผํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค. ๋ฐ๋๋ก ๊ฐ๊น์ด ๊ฑฐ๋ฆฌ๋ถํฐ ํ์ํด์ผ ํ๋ ๋ฌธ์ (์: ์ต๋จ ๊ฑฐ๋ฆฌ, ์ต์ ๋จ๊ณ ํ์)๋ผ๋ฉด BFS๊ฐ ์ ํฉํฉ๋๋ค. ๋ฌธ์ ๋ฅผ DFS์ BFS ๋ ๊ฐ์ง ๋ฐฉ์์ผ๋ก ๋ชจ๋ ๊ตฌํํด๋ณด๊ณ ์ฅ๋จ์ ์ ๋น๊ตํ๋ค ๋ณด๋ฉด, ์ด๋ ์๊ฐ ์์ ๋ง์ ์ ํ ๊ธฐ์ค์ด ์๊ธธ ๊ฒ์ ๋๋ค. :) ์ถ๊ฐ๋ก ๊ถ๊ธํ ์ฌํญ์ด ์์ผ๋ฉด ์ธ์ ๋ ํธํ๊ฒ ์ง๋ฌธ ๋จ๊ฒจ์ฃผ์ธ์ ๐
- 0
- 2
- 54
Q&A
์ด์ค์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๊ดํ ์์ ๋ด์ฉ๋ ์์๊น์?
์๋ ํ์ธ์, ์ฌํ๋!์์ฝ์ง๋ง, ๋ง์ํ์ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๋ํ ๋ณ๋ ๊ฐ์๋ ์ด๋ฒ ์ปค๋ฆฌํ๋ผ์ ํฌํจ๋์ด ์์ง ์์ต๋๋ค. ๋ณธ ๊ฐ์๋ ์ฃผ๋ก ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋ฌธ์ ์ ๊ทผ๋ฒ์ ์ด์ ์ ๋๊ณ ์์ด, ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ง์ ๊ตฌํํ๋ ์ฌํ ๋ด์ฉ์ ๋ค๋ฃจ์ง ์์์ต๋๋ค.์ถ๊ฐ๋ก ๊ถ๊ธํ ์ฌํญ์ด ์์ผ๋ฉด ์ธ์ ๋ ํธํ๊ฒ ์ง๋ฌธ ๋จ๊ฒจ์ฃผ์ธ์ ๐
- 0
- 1
- 65
Q&A
์์์์ ์ค๋ช ์ด ์๋ชป๋๊ณ ์๋ง์ด ๋ง๋ ๋ด์ฉ์ด๋ผ๊ณ ์๋ง์ ํ๊ธฐ
์๋ ํ์ธ์, ์ทํ๋งจ๋!int ์๋ฃํ ๊ธฐ์ค์ผ๋ก 1MB๋ 25๋ง๊ฐ์ ๊ณต๊ฐ์ด ๋ง์ต๋๋ค.์์์์ ๋งํ ๊ฒ์ด ํ๋ ค ์๋ง์ผ๋ก ์ถ๊ฐ ์ค๋ช ์ ์ ์ด ๋์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํด ์ฃผ์๋ฉด ๋ฉ๋๋ค.(๋ฐ๋ผ์, ์๋ง์์ ํ๋ ๋ง์ด ๋ง์ต๋๋ค.)(์ฌ์ง)int ์๋ฃํ์ 4Byte์ด๋ฏ๋ก 100๋ง / 4 = 25๋ง์ด ๋ง๋ ๊ฒ์ด์ฃ . ๊ฐ์ ์๋ฃ์ ์ฌ๋ฐ๋ฅธ ๋ด์ฉ์ผ๋ก ๊ณ ์ณ ๋์์ผ๋ ์ฐธ๊ณ ํ์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค!(๊ฐ์ ์๋ฃ ํ์ด์ง ๋งํฌ๋ ์์ ์ค๋ช ๋์ ์กด์ฌํฉ๋๋ค) P.S ๋ง์ํ์ ๋๋ก ํด๋น ๋ถ๋ถ์ ๋ ์ ์ธ์งํ ์ ์๋๋ก ์์ ํด ๋๋๋ก ํ๊ฒ ์ต๋๋ค!
- 0
- 2
- 75
Q&A
์ต๋๊ฐ int(1e6, 1e7, 1e8) ๊ธฐ์ค
์๋ ํ์ธ์, Jespy๋!๊ฐ์ ํ๋ฐ๋ถ์์๋ ๋ฐ๋ก ์ต๋๊ฐ์ด๋ ์ต์๊ฐ ์ด๊ธฐํ์ ๋ํ ํ์ด ๋ฑ์ฅํ์ง ์์ง๋ง, ์ต๋/์ต์๊ฐ์ ๋์ฌ ์ ์๋ ๊ฐ๋ณด๋ค ๋ ํฌ๊ฑฐ๋ ์๊ฒ๋ง ์ค์ ํ๋ฉด ์ถฉ๋ถํฉ๋๋ค. ์๋ฅผ ๋ค์ด,์ต์๊ฐ์ ๊ตฌํ๋ ๊ฒฝ์ฐ์๋ โ int(1e9) ๋๋ float('inf')์ต๋๊ฐ์ ๊ตฌํ๋ ๊ฒฝ์ฐ์๋ โ -int(1e9) ๋๋ -float('inf')์ด๋ ๊ฒ ์ค์ ํด๋๊ณ ์์ํ๋ฉด, ์ดํ ๋ก์ง์์ min, max๋ฅผ ์ ์ฉํ ๋ ๋ฌธ์ ์์ด ๋์ํฉ๋๋ค.์ ํด์ง ๊ท์น์ด ์๋ค๊ธฐ๋ณด๋ค๋, ๋ฌธ์ ์์ ๋ค๋ฃฐ ์ ์๋ ๊ฐ์ ๋ฒ์๋ฅผ ๋ณด๊ณ , ๊ทธ๋ณด๋ค ์ถฉ๋ถํ ํฌ๊ฑฐ๋ ์์ ๊ฐ์ผ๋ก ์ด๊ธฐํํ๋ ์์ผ๋ก ํ๋ฉด ๋ฉ๋๋ค. ๋ช ๊ฐ์ง ์ฃผ์ํ ์ float('inf')๋ float ํ์ ์ด๋ผ์, ์ ์ ์ฐ์ฐ ์์ฃผ์ธ ๋ฌธ์ ์์๋ int(1e9)์ฒ๋ผ ์ ์๋ก ์ฒ๋ฆฌํ๋ ๊ฒ ๋ ์์ ํฉ๋๋ค.1e9๊ฐ ํญ์ ์ถฉ๋ถํ ๊ฐ์ ์๋ ๊ฒฝ์ฐ๋ ์กด์ฌํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ฌธ์ ์์ ์์ ๋ฒ์๊ฐ 10^12๊น์ง ๊ฐ ์ ์๋ค๋ฉด, ์ด๋ณด๋ค ๋ ํฐ ์์ธ 1e13๊ณผ ๊ฐ์ด ์ค์ ํด์ผ ํฉ๋๋ค.์์๊ฐ ๋์ฌ ์ ์๋ ๋ฌธ์ ์์ ์ต์๊ฐ = 0์ผ๋ก ์ด๊ธฐํํ๋ฉด ์ต์๊ฐ์ด ์ ๋๋ก ๊ฐฑ์ ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์๊ธธ ์ ์์ผ๋, ์ด๋๋ ๋ต๋ณด๋ค ๋ ์์ ๊ฐ์ผ๋ก ์ด๊ธฐํํด์ผ ํฉ๋๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก๋, ๋งค๋ฒ ๋ฌธ์ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ์ ํ ์ด๊ธฐ๊ฐ์ ์ค์ ํ๋ ๊ฒ ์ค์ํ๊ณ , ์ด ๋ถ๋ถ์ ๋ง์ด ๊ฒฝํํด๋ณด์๋ฉด ์์ฐ์ค๋ฝ๊ฒ ๊ฐ์ ์ก์ ์ ์์ ๊ฑฐ์์! ๐
- 0
- 2
- 122
Q&A
์น์ 3 BOJ 1342 //= ์ฐ์ฐ์ ๊ด๋ จ
์๋ ํ์ธ์, Sung Hyun Hong๋!deno *= S.count(chr(i)) ๊ฐ ์๋ deno *= fact(S.count(chr(i))) ๋ฅผ ํ์ ์ผ ํฉ๋๋ค.- ์ด ์์ ์ ์ค๋ณต๋ ๊ฒฝ์ฐ๋ฅผ ๊ฑธ๋ฌ์ฃผ๊ธฐ ์ํ ์์ ์ด๋ฉฐ, ์ด๋ ์ํ๋ฒณ์ ๊ฐ์ S.count(chr(i))๊ฐ ์๋ ํด๋น ์ํ๋ฒณ์ด ์๋ฆฌ๋ฅผ ๋ฐ๊ฟ ์ ์๋ ๊ฒฝ์ฐ์ ์ fact(S.count(chr(i)))๋ก ์ฒ๋ฆฌํด ์ค์ผ ํฉ๋๋ค. ๋ฐ๋ผ์, ์ง๋ฌธ์ ์ฌ๋ ค์ฃผ์ ์ฝ๋๋ฅผ ์๋์ ๊ฐ์ด ๋ณ๊ฒฝํด ์ฃผ์๋ฉด ๋ฉ๋๋ค.deno = 1 for i in range(ord('a'), ord('z') + 1): deno *= fact(S.count(chr(i))) ans = int(ans/deno) ์ง๋ฌธ์ ๋ํด ๋ง์กฑ์ค๋ฌ์ด ๋ต๋ณ์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!์ถ๊ฐ๋ก ๊ถ๊ธํ์ ์ ์ด๋ ๋ ์์ธํ ์ค๋ช ์ด ํ์ํ์๋ค๋ฉด ์ธ์ ๋ ์ง ๋ง์ํด ์ฃผ์ธ์. ๐
- 0
- 3
- 58
Q&A
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ
์๋ ํ์ธ์, hgjm1022๋!ํด๋น ๋ถ๋ถ์ ๊ฐ์๋ฅผ ์ ์ํ๋ฉด์ ๊ณ ๋ฏผํ๋ ๋ถ๋ถ ์ค ํ๋์ธ๋ฐ์. ๊ฒฐ๋ก ์ ์ผ๋ก๋ ์๋์ ๊ฐ์ 2๊ฐ์ง ์ด์ ๋๋ฌธ์ ์ง์ ๊ตฌํํ๋ ๊ณผ์ ์ ๊ฐ์์ ๋ฃ์์ต๋๋ค.๊ตฌํํ๋ ๊ณผ์ ์ ํตํด ์กฐํฉ๊ณผ ์์ด ์๊ณ ๋ฆฌ์ฆ์ ๋ํด ๊น๊ฒ ์ดํดํ ์ ์๊ธฐ ๋๋ฌธ- ์กฐํฉ๊ณผ ์์ด ์๊ณ ๋ฆฌ์ฆ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก๋ง ๊ณต๋ถํ๋ ๊ฒฝ์ฐ์ ํํ ์๊ฐ ๋ณต์ก๋ ์กฐ์ฐจ ์ ํํ ๊ณ์ฐํ์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์์ต๋๋ค. ์ด๋ฐ ๊ฒฝ์ฐ๋ฅผ ๋ฐฉ์งํ๋ฉฐ ํด๋น ์๊ณ ๋ฆฌ์ฆ๋ค์ด ์ด๋ป๊ฒ ๊ตฌํ๋๋์ง ์ดํดํ ์ ์๋๋ก ํ๊ธฐ ์ํด ์ง์ ๊ตฌํํ๋ ๊ณผ์ ์ ๋ฃ์์ต๋๋ค.์กฐํฉ/์์ด ์๊ณ ๋ฆฌ์ฆ์ ์์ฉํด์ผ ํ๋ ๊ฒฝ์ฐ์ ์ง์ ๊ตฌํํด์ผ ํ๊ธฐ ๋๋ฌธ- ์กฐํฉ ๋๋ ์์ด์ ์ด์ฉํ๋ ๋ฌธ์ ์ค์์ ๋ฐฑํธ๋ํน ์ ํ์ ์ํ๋ ๋ฌธ์ ๋ค์ ์ง์ ์กฐํฉ/์์ด ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ์ฌ ๋ช๋ช ๋ถ๋ถ์ ๊ณ ์น๋ ์์ ์ ํด์ผ ํฉ๋๋ค. ๋ฐ๋ผ์, ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ง ์์กดํ๋ ๊ฒฝ์ฐ์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ชป ํธ๋ ๊ฒ์ด์ฃ . - ์ฆ, ์กฐํฉ/์์ด์ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ์ดํด๋ณด๋๋ฐ ์ค๊ฐ์ค๊ฐ์ ์ดํด๋ณด์ง ์์๋ ๋๋ ๊ฒฝ์ฐ๋ ์๋ตํ๋ฉฐ ํ์ํ๋ ๋ฐฑํธ๋ํน ๊ตฌ์กฐ๋ ์ง์ ๊ตฌํํด์ผ ํฉ๋๋ค. (๋ฐฑํธ๋ํน ๊ด๋ จ ๋ด์ฉ์ ๋ธ๋ฃจํธ ํฌ์ค ์๊ณ ๋ฆฌ์ฆ [๋ฌธ์ ํ์ด] : BOJ 1342 ๊ฐ์ ์์์ ์ฐธ๊ณ ํ์๋ฉด ๋ฉ๋๋ค.) ์ค์ ๋ฌธ์ ๋ฅผ ํ ๋๋ ์ด๋ป๊ฒ ํด์ผ ํ ๊น?์ค์ ๋ฌธ์ ๋ฅผ ํธ์ค ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค. ํ์ด์ฌ์ ๊ฒฝ์ฐ ์กฐํฉ/์์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ฌ์ฉํ๊ธฐ ํธ๋ฆฌํ๋ฉฐ ์ ๊ตฌํ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ตฌํ์ ์ ํ์ฑ/์๋ ์ธก๋ฉด์์ ์ ๋ฆฌํฉ๋๋ค. (์ค์ ๊ฐ์ ๋ํ ์ด๋ฐ ๋ถ๋ถ์ ์ ์ธํ๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ทน ํ์ฉํฉ๋๋ค.) ๋ค๋ง, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฐ๋ ๊ฒฝ์ฐ์๋ ์๊ฐ ๋ณต์ก๋๋ ์ ํํ ๊ณ์ฐํ ์ ์์ด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ , ๋ฐฑํธ๋ํน ๊ด๋ จ ๋ฌธ์ ๊ฐ ๋์ค๋ฉด ์กฐํฉ/์์ด์ ์ง์ ๊ตฌํํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ ์ ์๊ธฐ ๋๋ฌธ์ ๋ก์ง์ ๋ํด์ ์ด๋ ์ ๋ ์์งํ๋ ๊ฒ์ ์ถ์ฒ๋๋ฆฝ๋๋ค. ์ง๋ฌธ์ ๋ํด ๋ง์กฑ์ค๋ฌ์ด ๋ต๋ณ์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!์ถ๊ฐ๋ก ๊ถ๊ธํ์ ์ ์ด๋ ๋ ์์ธํ ์ค๋ช ์ด ํ์ํ์๋ค๋ฉด ์ธ์ ๋ ์ง ๋ง์ํด ์ฃผ์ธ์. ๐5์ ์๊ฐํ์ ๋จ๊ฒจ์ฃผ์๋ฉด ํฅํ ๋ ๋์ ๊ฐ์๋ฅผ ๋ง๋๋ ๋ฐ ํฐ ๋์์ด ๋ฉ๋๋ค. ๐
- 0
- 2
- 91
Q&A
2๋ฒ ๊ตฌํ ๋ฐฉ๋ฒ ์ง๋ฌธ ์์ต๋๋ค.
์๋ ํ์ธ์, eoyeong๋!๋ง์ํ์ ๋๋ก cur = -1์ธ ๊ฒฝ์ฐ๋ฅผ ๋ฐ๋ก ์์ธ์ฒ๋ฆฌํ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค.ํ์ง๋ง, ์ ๊ฐ์ ๊ฒฝ์ฐ๋ ํจ์ ๋ด์์ cur์ ๋ํด ์ฒ๋ฆฌํ๋ ๊ฒ์ด ์๋ ํจ์ ๋ฐ์์ cur์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ์ ํธํฉ๋๋ค. ์ด์ ๊ด๋ จํ ๋ด์ฉ์ ์๋์ ์ ํ์ ธ ์์ต๋๋ค. ๋งค๊ฐ๋ณ์ ํ์ ๋ ์ ์ด์ฉํ๊ธฐ์ผ๋จ ๋งค๊ฐ๋ณ์ ํ์ ํ์์ผ๋ก ๊ตฌํํ ๊ฒฝ์ฐ์ (์ซ์ K์ ๋ํด) ํจ์์ ์๋ฏธ๋ "๋ฐฐ์ด์ ์์ ์ค์์ K์ธ ๊ฐ์ ์ฐพ๋๋ค" ๋ผ๋ ์๋ฏธ๋ณด๋จ "๋ฐฐ์ด์ ์์ ์ค์์ K๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ค"๋ผ๋ ์๋ฏธ๋ก ๋ฐ์๋ค์ด๋ ๊ฒ์ด ์ข์ต๋๋ค.๋ฐ๋ผ์, ์ ๊ฐ์ ๊ฒฝ์ฐ๋ ๋งค๊ฐ ๋ณ์ ํ์ ๋ฐฉ๋ฒ์ ์ด์ฉํ๋ค๋ฉด, ์์ธ์ฒ๋ฆฌ ์์ด cur์ ๋ฐํํ๊ฒ ํ ํ์ cur์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๋ง์ด ์ฌ์ฉํฉ๋๋ค. (์๋์ ์ฝ๋ ์ฐธ์กฐ)def get_idx(arr, num): # arr[idx] โค num์ธ ๊ฐ์ฅ ํฐ idx๋ฅผ ๋ฐํ cur = -1 step = len(arr) while step != 0: while (cur + step ์์ ์์ ์ฝ๋์์ ๊ฐ ์ผ์ด์ค ๋ณ๋ก ๋ป์ ์ ์ด ๋์์ต๋๋ค. ํจ์์ ์๋ฏธ๊ฐ "๋ฐฐ์ด์ ์์ ์ค์์ K๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ค"๋ผ๋ ์ ์ ์ธ์งํ๋ค๋ฉด ๊ฐ ์ผ์ด์ค๋ง๋ค ์ ์ด ๋์ ์๋ฏธ๊ฐ ๋น์ฐํ๋ค๋ ์๊ฐ์ด ๋์ค ๊ฒ๋๋ค. ์ด๋ฅผ ํ์ฉํ์ฌ ๋ฌธ์ ์ ์ ์ฉํ๋ ๋ ๋ํ ์ผํ ๋ด์ฉ์ด ๊ถ๊ธํ์๋ฉด, ์ด๋ถ ํ์ ์๊ณ ๋ฆฌ์ฆ [๋ฌธ์ ํ์ด] : BOJ 3020 ๊ฐ์์ 2๋ฒ์งธ ํ์ด ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ์ง๋ฌธ์ ๋ํด ๋ง์กฑ์ค๋ฌ์ด ๋ต๋ณ์ด ๋์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค!์ถ๊ฐ๋ก ๊ถ๊ธํ์ ์ ์ด๋ ๋ ์์ธํ ์ค๋ช ์ด ํ์ํ์๋ค๋ฉด ์ธ์ ๋ ์ง ๋ง์ํด ์ฃผ์ธ์. ๐
- 0
- 1
- 141





