Python
[Python | week3] Heap(ํ) | Dynamic Programming(๋์ ๊ณํ๋ฒ) | DFS/ BFS (๊น์ด/ ๋๋น ์ฐ์ ํ์)
๋ณดํธ๋์ด ์๋ ๊ธ์ ๋๋ค.
[Python | week2] ์ค๊ฐ๊ณ ์ฌ | ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ(Greedy Algorithm)
๋ณดํธ๋์ด ์๋ ๊ธ์ ๋๋ค.
[Python] 1783 ๋ณ๋ ๋์ดํธ | ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
~์ค๋ฒ 3~ https://www.acmicpc.net/problem/1783 1783๋ฒ: ๋ณ๋ ๋์ดํธ ์ฒซ์งธ ์ค์ ์ฒด์คํ์ ์ธ๋ก ๊ธธ์ด N์ ๊ฐ๋ก ๊ธธ์ด M์ด ์ฃผ์ด์ง๋ค. N๊ณผ M์ 2,000,000,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค. www.acmicpc.net [๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ] 1. ์ ํ ์ฌํญ์ ๋จ๊ณ์ ์ผ๋ก ๋ถ๋ฆฌํ๊ธฐ 2. n์ ์ ํ ์ฌํญ ์ดํดํ๊ธฐ 3. m์ ์ ํ ์ฌํญ ์ดํดํ๊ธฐ 1. ์ ํ ์ฌํญ์ ๋จ๊ณ์ ์ผ๋ก ๋ถ๋ฆฌํ๊ธฐ ์ฒ์์ ๋ฌธ์ ๋ฅผ ์ฝ์ผ๋ฉด '... ๋ญ ์ด์ฉ๋ผ๋ ๊ฑฐ์ผ' ํน์ '์ด๊ฑธ ์ด๋ป๊ฒ ํ๋ผ๋ ๊ฑฐ์ผ'๋ผ๋ ์๊ฐ์ ํ ์ง๋ ๋ชจ๋ฅธ๋ค ๋ด๊ฐ ๊ทธ๋ฌ๋ค ๋ค์ ํ๋ฒ ๋ฌธ์ ๋ฅผ ์ฐฌ์ฐฌํ ์ดํด๋ณด๊ณ ์ ํ ์ฌํญ์ ๊ผผ๊ผผํ ์ดํด๋ณด๋ฉฐ์นจ์ฐฉํ๊ฒ ์๊ฐํด ๋ณผ ํ์๊ฐ ์๋ค. ๋ชจ๋ ์์ ์์น๋ (0, 0)์ด๋ผ๊ณ ๊ฐ์ ํ๋ค. ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ n๊ณผ m์ ํฌ๊ธฐ..
[Python | week1-4] ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ(Greedy Algorithm) |
week 1-4 1-1๋ถํฐ ํ์ฌ ๊ธ(1-4)๊น์ง ๋งค๋ฒ ์์ฑํ ๊ธ์ 4์ฃผ์ฐจ, ์ฆ week 4๊น์ง ์์ฑ ๋ ์์ ์ ๋๋ค. ํ๋ก๊ทธ๋๋จธ์ค School ์์ ์งํํ๋ ์ฝํ ์ค๋น ๊ฐ์๋ก ๋ณธ ๊ณผ์ ์ ๋์ฑ ๊น์ด ์ดํดํ๊ธฐ ์ํด์ ์ค์ค๋ก ์์ฑํ๋ ์๋ฆฌ์ฆ์ ๋๋ค week1-2 ์์ ํ์ตํ ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ์ด ๋ ๋ค์ ๋ฑ์ฅํ์ต๋๋ค! 2023.01.13 - [๐Language/Python] - [Python | week1-2] Greedy ์๊ณ ๋ฆฌ์ฆ | ์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค [Python | week1-2] Greedy ์๊ณ ๋ฆฌ์ฆ | ์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค week1-2 [์ค๋์ ํ์ต] 1. Greedy ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ 2. '์ฒด์ก๋ณต' ๋ฌธ์ ํ์ด 3. ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ์ถ์ฒ ํ์ต 1. Greedy Algorithm ๊ฐ๋ ์ด๋ฆ๊ณผ ๊ฐ์ด ํ์์ค๋ฌ์ด ..
[Python | week1-3] ์ ๋ ฌ | Sort ํจ์ | divmod ํจ์ | ์ฌ๊ท ์๊ณ ๋ฆฌ์ฆ
Week1-3 [์ค๋์ ํ์ต] 1. ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ(sort, sorted ํจ์) 2. divmod ํจ์ 3. ์ฌ๊ท ์๊ณ ๋ฆฌ์ฆ ~ํผ์ฃ๋ง~ ๋ฐฑ์ค์ด ์ต์ํด์์ธ์ง ์๋๋ฉด ๋ฌด์ธ๊ฐ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํด์ผ ๋๋ค๋ ๊ฐ๋ฐ ๊ด๋ ๋๋ฌธ์ธ์ง ์์ฆ ๋ฌธ์ ๊ฐ ์ ํ๋ฆฌ์ง ์๋๋ค ๋ฌธ์ ํด๊ฒฐ ์ฝ๋๋ฅผ ๋ณด๋ฉด "์ ์ด๊ฑฐ๋ค" ์ถ์๋ฐ ๋ง์ ์ค์ค๋ก ํ๋ ค๊ณ ํ๋ฉด ๋ง๋งํ๊ณ ๋ต๋ตํ๋ค ์ด์ ์๋ ์ด๋ฐ ๊ฒฝํ์ด ์๋๋ฐ, ๊พธ์คํ ๋ฌธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ณต๋ถํ๋ค ๋ณด๋ฉด ํด๊ฒฐ ํ๋ฆ์ ์ค์ค๋ก ๋ ์ฌ๋ฆด ์ ์์ผ๋ฆฌ๋ผ ๋ฏฟ์ด ์์ฌ์น ์๋๋ค 1. ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ(sort, sorted ํจ์) ์ ๋ ฌ์ ์ฝ๋ฉ์ ์์ํ๋ ๋ถ๋ค๋ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ผ๊ณ ์๊ฐํ๋ค. ์ฌ๋ฌ ๊ฐ์ง ์ข ๋ฅ์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ด ์์ง๋ง Python์ ๋ด์ฅํจ์ Sort์ Sorted๋ฅผ ํจ๊ป ์ดํด๋ณด๋๋ก ํ์ ํ์ด์ฌ์ด ์ ๊ณตํ๋ ์๋ฃ๊ตฌ์กฐ..
[Python | week1-2] Greedy ์๊ณ ๋ฆฌ์ฆ | ์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค
week1-2 [์ค๋์ ํ์ต] 1. Greedy ์๊ณ ๋ฆฌ์ฆ ๊ฐ๋ 2. '์ฒด์ก๋ณต' ๋ฌธ์ ํ์ด 3. ๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ ์ถ์ฒ ํ์ต 1. Greedy Algorithm ๊ฐ๋ ์ด๋ฆ๊ณผ ๊ฐ์ด ํ์์ค๋ฌ์ด ๋ฐฉ๋ฒ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ๋์์ ๋์ธ ์ ํ์ง ์ค ํญ์ ๋ ์ข์ ๊ฒ์ ์ ํํด ๋๊ฐ๋๋ค - ์๊ณ ๋ฆฌ์ฆ ์ค ๊ธฐ๋ณธ์ ํด๋นํฉ๋๋ค. (ํ์ง๋ง ์ฝ๋ค๋ ๊ฒ์ ์๋) - ํ์ฌ์ ์ต์ ๊ฐ์ด ์ต์ข ์ต์ ๊ฐ์ ์ํฅ์ ์ฃผ์ง ์์ ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. - ํ ๋ฒ ํ ์ ํ์ ์ทจ์ํ ์ ์์ต๋๋ค. - ๋์ถ ๋ ๊ฐ์ด ํด๋น ๋ฌธ์ ์ ์ต์ ๊ฐ์ธ์ง๋ ์ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ( ๊ทธ๋์ NP-Hard์์ ์์ฃผ ์ฌ์ฉ ๋จ) 2. ๋ฌธ์ ํ์ด ์์ฝ๊ฒ๋ ๊ณต๊ฐ๋ ๋ฌธ์ ๊ฐ ์๋๋ฏ๋ก ์ด๋ค ๋ฌธ์ ์ธ์ง ์ ์ถํ ์ ์๋๋ก ์์ฑํ๋ ๊ฒ์ด ์์น์ด๋ผ ๋ฌธ์ ์ค๋ช ์ ์์ต๋๋ค. ํ์ด..
[Python] ๋ฐฑ์ค 4796 ์บ ํ | ๊ทธ๋ฆฌ๋(Greedy) ์๊ณ ๋ฆฌ์ฆ | ํ์์ค๋ฌ์ด ์๊ณ ๋ฆฌ์ฆ
~๋ธ๋ก ์ฆ 1~ ๋ฌธ์ ํ์ด์ ์์ ์ด์ค์ง๊ณ ํ์๋ฉด ๊ตฌํ์ด ์๋ ๋ฌธ์ ๋ฅผ ์ดํดํ๋ ค๊ณ ๋ค๋ฅธ ์ฌ์ดํธ๋ฅผ ์ฐธ๊ณ ํ๋ค. ๋ฌธ์ ๋ฑ์ฐ๊ฐ ๊น๊ฐ์ฐ์ ๊ฐ์กฑ๋ค๊ณผ ํจ๊ป ์บ ํ์ ๋ ๋ฌ๋ค. ํ์ง๋ง, ์บ ํ์ฅ์๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฝ๊ณ ๋ฌธ์ด ์ฐ์ฌ ์์๋ค. ์บ ํ์ฅ์ ์ฐ์ํ๋ 20์ผ ์ค 10์ผ๋์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ฐ์ฐ์ด๋ ์ด์ ๋ง 28์ผ ํด๊ฐ๋ฅผ ์์ํ๋ค. ์ด๋ฒ ํด๊ฐ ๊ธฐ๊ฐ ๋์ ๊ฐ์ฐ์ด๋ ์บ ํ์ฅ์ ๋ฉฐ์น ๋์ ์ฌ์ฉํ ์ ์์๊น? ๊ฐ์ฐ์ด๋ ์กฐ๊ธ ๋ ์ผ๋ฐํํด์ ๋ฌธ์ ๋ฅผ ํ๋ ค๊ณ ํ๋ค. ์บ ํ์ฅ์ ์ฐ์ํ๋ P์ผ ์ค, L์ผ๋์๋ง ์ฌ์ฉํ ์ ์๋ค. ๊ฐ์ฐ์ด๋ ์ด์ ๋ง V์ผ์ง๋ฆฌ ํด๊ฐ๋ฅผ ์์ํ๋ค. ๊ฐ์ฐ์ด๊ฐ ์บ ํ์ฅ์ ์ต๋ ๋ฉฐ์น ๋์ ์ฌ์ฉํ ์ ์์๊น? (1 < L < P < V) ์ ๋ ฅ ์ ๋ ฅ์ ์ฌ๋ฌ ๊ฐ์ ํ ์คํธ ์ผ์ด์ค๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ํ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์..
[Python | week1-1] Hash ์๋ฃ๊ตฌ์กฐ | accumulate ํจ์ | enumerate ํจ์ | counter ํจ์
week1-1 ํ์ต ๋ด์ฉ 1. [์๋ฃ๊ตฌ์กฐ] Hash 2. enumerate ํจ์ 3. accumalate ํจ์ 4. counter ํจ์ 1. [์๋ฃ๊ตฌ์กฐ] Hash Python์์ Hash ์๋ฃ๊ตฌ์กฐ๋ ๋์ ๋๋ฆฌ(Dictionary)๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค. ๋์ ๋๋ฆฌ๋ key-value๊ฐ์ ์์ผ๋ก ๊ฐ๋๋ค. key๊ฐ์ ์๋ฃํ์ด ๋ฌ๋ผ๋ ๊ณต์กดํ ์ ์๋ค. key๊ฐ๋ง ์๊ณ ์๋ค๋ฉด ์ธ์ ๋ ์ง value์ ์ ๊ทผํ ์ ์๋ค. ๋ค์ ์์๋ก ์์ธํ ์์๋ณด์ - ์กฐํ - ์ ๋ ฅ - ์ญ์ 1) get ํจ์ dic = {"BTS": "๋ฐฉํ์๋ ๋จ", "๋น๋ฐ๋ฒํธ": 4313} print(dic.get("๋น๋ฐ๋ฒํธ")) #4313 2) [] dic = {"BTS": "๋ฐฉํ์๋ ๋จ", "๋น๋ฐ๋ฒํธ": 4313} print(dic["๋ฐฉํ์๋ ๋จ"]) #{"..
[Python] ๋ฐฑ์ค 1181 ๋จ์ด ์ ๋ ฌ | ๋ด์ฅํจ์
~์ค๋ฒ 5~ ๋ด์ฅ ํํ! ๋ด์ฅ ํ๊ดด! ๋ฌธ์ ํด๊ฒฐ์ ํฌ์ธํธ( ๋ด์ฅ ํจ์ ) - input ํจ์๋ ์๊ฐ์ด ์งฑ ๋ง์ด ๊ฑธ๋ฆฐ๋ค - set ํจ์๋ก ์ค๋ณต ์ ๊ฑฐ - sort ํจ์ ์ปค์คํฐ๋ง์ด์ง 1. ์๊ฐ ์ค์ด๊ธฐ | ์๊ฐ ์ด๊ณผ ํผํ๊ธฐ | input ๋์ readline import sys n = int(sys.stdin.readline()) words = [] for _ in range(n): words.append(sys.stdin.readline()) sys ๋ชจ๋์ importํ์ฌ sys.stdin.readline()์ ์ฌ์ฉํ๋ฉด input()๋ณด๋ค ์๊ฐ์ ํ ์ค์ผ ์ ์์ต๋๋ค..! ์ฒ์์ ์ ๋ ฅ์ ๋ฐ์ ๋ ๋ฆฌ์คํธ์ ํฌ๊ธฐ๋ฅผ ์ค์ ํ๊ณ (ex. list[[0]*50 for i in range(20000)]) ํ๋๋ฐ ์์ ํ ํํผ..