์ ์ฒด ๊ธ
-
[์๊ณ ๋ฆฌ์ฆ] ๊ธฐํ ์๊ณ ๋ฆฌ์ฆ - 2์ฐจ์ ํธ๋ฆฌComputer Science/Algorithm 2021. 12. 14. 04:14
2์ฐจ์ ํธ๋ฆฌ ์ด์ง ํธ๋ฆฌ ํํ๋ฅผ ๊ฐ์ง๋ฉฐ, ๋์ ์ผ๋ก ๋ณํํ๋ ํธ๋ฆฌ ๋ฒ์ ํ์์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๊ธฐํํ์ ๊ณต๊ฐ์ ๋๋ ๋ง๋๋ ๊ณผ์ ์ด์ง ํ์ ํธ๋ฆฌ๋ฅผ ๋ง๋๋ ๊ณผ์ ๊ณผ ์ ์ฌ ์ด์ง ํ์ํธ๋ฆฌ์ ๋ค๋ฅธ ์ ์ ์ด์ง ํธ๋ฆฌ์ ๋ ๋ฒจ์ ๋ฐ๋ผ y์ถ๊ณผ x์ถ์ ๋ฒ๊ฐ์ ๊ฐ๋ฉด์, ํ๋ฒ์ y์ขํ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ฝ์ ํ๊ณ , ํ๋ฒ์ x์ขํ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ฝ์ ํ๋ ๊ฒ์ 2์ฐจ์ ํธ๋ฆฌ ๋ง๋๋ ๊ณผ์ 1. ํด๋น ์์น๊ฐ x์ขํ or y์ขํ์ธ์ง ํ์ธ 2. ํด๋น ์์น์ ๋ง๋ ์ขํ์ ์๋ก ์ฝ์ ํ ์ขํ์ ๋น๊ต 3. ์์น ์ ์ 4. x์ขํ or y์ขํ์๋ฆฌ์ธ์ง ํ์ธ 5. ์๋ก์ด ์ขํ๋ฅผ ์๋ง์ ์ขํ๋ชจ์์ผ๋ก ๊ทธ๋ ค์ฃฝ; ํ๋ฒ์ y์ขํ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ฝ์ ํ๊ณ , ํ๋ฒ์ x์ขํ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ฝ์ ํด์ผํ๋ฏ๋ก, ์ฝ์ ์ ์ฝ๊ฒ ํ๋ณํ ์ ์๋๋ก ๋ค๋ฅธ ๋ชจ์์ผ๋ก ๊ทธ๋ ค์ค๋๋ค. ์ฝ์ ๊ณผ์ ..
-
[์๊ณ ๋ฆฌ์ฆ] AVL ํธ๋ฆฌComputer Science/Algorithm 2021. 10. 24. 03:26
AVL ํธ๋ฆฌ ๋ฌ์์์ ์ํ์ Adelson - Velskii ์ Landis๊ฐ ๊ณ ์ํ ๋์ด ๊ท ํ ์ด์ง ํ์ ํธ๋ฆฌ ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ์ ์ผ์ชฝ ์๋ธํธ๋ฆฌ์ ๋์ด ์ฐจ๊ฐ 2์ด์์ด ๋๋ฉด ํ์ ์ ํตํด ํธ๋ฆฌ์ ๋์ด ์ฐจ๋ฅผ 1์ดํ๋ก ์ ์ง ๋์ด์ฐจ = ์ค๋ฅธ์ชฝ ์๋ธํธ๋ฆฌ์ ๋์ด - ์ผ์ชฝ ์๋ธํธ๋ฆฌ์ ๋์ด ์ด์ง ํ์ ํธ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ ์ฝ์ ์์ ์ด์ง ํธ๋ฆฌ ์ฒ๋ผ ๋ ธ๋๋ฅผ ์ฝ์ ํ๋ค. AVL ํธ๋ฆฌ์ ๋์ด ์ฐจ AVL ํธ๋ฆฌ์์ ๋ ธ๋ ์ฝ์ ์, ํ์ ์ด ํ์ํ ๊ฒฝ์ฐ 2๊ฐ์ง๊ฐ ์์ต๋๋ค. ๊ฒฝ์ฐ 1: ๋์ด ์ฐจ 2์ธ ๋ ธ๋๋ถํฐ ์ฝ์ ๊ฒฝ๋ก ์ ๊น์ง์ ๋ชจ์์ด 1์์ธ ๊ฒฝ์ฐ -> ๋จ์ผ ํ์ ๋จ์ผ ํ์ : ๊ฐ์ด๋ฐ ์ซ์๊ฐ ์๋ก ์ฌ๋ผ๊ฐ๋ฉด์, ใ ์ ๋ชจ์์ผ๋ก ํ์ ๊ฒฝ์ฐ 2: ๋์ด ์ฐจ 2์ธ ๋ ธ๋๋ถํฐ ์ฝ์ ๊ฒฝ๋ก ์ ๊น์ง์ ๋ชจ์์ด >, ์ด์ค ํ์ ์ด์ค ํ..
-
[Python] 2309 ์ผ๊ณฑ ๋์์ดAlgorithm/๋ฐฑ์ค 2021. 10. 15. 02:43
1. ๋ฌธ์ ๐ 2. ์ ์ถ๋ ฅ ์ ๐ 3. ์๊ณ ๋ฆฌ์ฆ โ 2๋ช ๋ง ์ ์ธํ๋ฉด 100์ด ๋๋, ์ด์ค for๋ฌธ์ ์ด์ฉํ์ฌ ๋ชจ๋ ๊ฒฝ์ฐ์ ์ ์ค, ์ผ๊ณฑ๋ช ์ ํค ํฉ - (๋๊ฐ๋ฅผ ๋ํ ๊ฐ) = 100์ด๋ฉด ๊ทธ ๋๊ฐ๋ง -1๋ก ๋ณ๊ฒฝํด์ฃผ์ด ์ถ๋ ฅํด์ฃผ์๋ค. 4. ์์ค์ฝ๋ ๐ป import sys height_list = [] for i in range(9): height_list.append(int(sys.stdin.readline())) height_sum = sum(height_list) is_exist = False for i in range(len(height_list) - 1): for j in range(i + 1, len(height_list)): if height_sum - (height_list[i] + height_l..
-
[Python] ๋ฐฑ์ค 11650 - ์ขํ ์ ๋ ฌํ๊ธฐAlgorithm/๋ฐฑ์ค 2021. 10. 12. 20:45
1. ๋ฌธ์ ๐ https://www.acmicpc.net/problem/11650 11650๋ฒ: ์ขํ ์ ๋ ฌํ๊ธฐ ์ฒซ์งธ ์ค์ ์ ์ ๊ฐ์ N (1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ i๋ฒ์ ์ ์์น xi์ yi๊ฐ ์ฃผ์ด์ง๋ค. (-100,000 ≤ xi, yi ≤ 100,000) ์ขํ๋ ํญ์ ์ ์์ด๊ณ , ์์น๊ฐ ๊ฐ์ ๋ ์ ์ ์๋ค. www.acmicpc.net 2. ์ ์ถ๋ ฅ ์ ๐ 3. ์๊ณ ๋ฆฌ์ฆ โ sorted ํจ์๋ฅผ ์ด์ฉํ์ฌ ์ ๋ ฌํ๋ค. โ๏ธ list๋ฅผ sort ํ ๊ฒฝ์ฐ๋ ๋งจ ์์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ค. 4. ์์ค์ฝ๋ ๐ป import sys input = sys.stdin.readline N = int(input()) nums = [] for i in range(N): [a, b] = map..
-
[Python] ์ ๊ตญ์ฌ์ฌAlgorithm/ํ๋ก๊ทธ๋๋จธ์ค 2021. 6. 3. 02:52
1. ๋ฌธ์ ๐ 2. ์ ์ถ๋ ฅ ์ ๐ 3. ์๊ณ ๋ฆฌ์ฆ โ ์ฝํ ์ ์ด์ง ํ์ ๋ฌธ์ ๋ ํ์๋ฒ์๊ฐ ํฐ ์ํฉ์์ ํ์์ ๊ฐ์ ํ๋ ๋ฌธ์ ๊ฐ ๋ง๋ค. ๋ฐ๋ผ์ ํ์ ๋ฒ์๊ฐ ํด ๊ฒฝ์ฐ ์ด์ง ํ์์ผ๋ก ๋ฌธ์ ์ ์ ๊ทผํด๋ณด์ ! 1. ์ผ์ ํ๋ ๋ฐ ์์ํ๋ ์๊ฐ min, max ์ ํ๊ธฐ min = 1 max = ๊ฐ์ฅ ์ค๋ ๊ฑธ๋ฆฌ๋ ์ฌ์ฌ๋ * ์ผ์ ๊ฐ์ 2. ๊ฐ ์ ๊ตญ ์ฌ์ฌ๋์์ ์ฒ๋ฆฌ ํ ์ผ๋ค์ด n์ ๊ฐ์ด ๋๋ ์ง ํ์ธํด๋ณด๊ธฐ ๊ฐ ์ ๊ตญ ์ฌ์ฌ๋์์ ์ผํ ๊ฐ์ = mid // n 3. mid ๊ฐ ์กฐ์ ํ๊ธฐ - mid / time ์ด n์ ๊ฐ๋ณด๋ค ํฌ๋ค๋ฉด, mid๋ฅผ ์ค์ธ๋ค. - mid / time ์ด n์ ๊ฐ๋ณด๋ค ์๋ค๋ฉด, mid๋ฅผ ๋๋ฆฐ๋ค. ๋ง์ง๋ง mid ๊ฐ์ด ์ฐ๋ฆฌ๊ฐ ๊ตฌํ๋ ์ต์ ๊ฐ์ด ๋๋ค. 4. ์์ค์ฝ๋ ๐ป def solution(n, times): st..
-
[Python] ๋ฐฑ์ค 2193๋ฒ ์ด์น์Algorithm/๋ฐฑ์ค 2021. 5. 17. 23:59
1. ๋ฌธ์ ๐ 2. ์ ์ถ๋ ฅ ์ ๐ 3. ์๊ณ ๋ฆฌ์ฆ โ Dp ๋ฌธ์ ์ด๋ฏ๋ก ๊ท์น ๋๋ ์ ํ์์ ์ฐพ๋๋ค N / ๋์ ์ 0 1 ์ถ๋ ฅ ๊ฐ(๊ฐฏ์) 1 0 1 1 2 1 0 1 3 1 1 2 4 2 1 3 5 3 2 5 6 5 3 8 ๊ท์น์ ๋ณด๋ฉด, N์ด 1๊ณผ, 2์ผ ๋ 1์ด๋ฉฐ ๊ทธ ์ด์ธ์ ๊ทธ ์ ์ ๊ฐ 2๊ฐ๋ฅผ ํฉ์น ๊ฐ๊ณผ ์ถ๋ ฅ ๊ฐ์ด ๊ฐ๋ค๋ ๊ท์น์ ์ฐพ์ ์ ์๋ค. 4. ์์ค์ฝ๋ ๐ป n = int(input()) nums = [1] * n if n == 1 or n == 2: print(1) else: for i in range(2, n): nums[i] = nums[i-1] + nums[i-2] print(nums[n-1])
-
[Python] ๋ฐฑ์ค 2439๋ฒ ๋ณ์ฐ๊ธฐ - 2Algorithm/๋ฐฑ์ค 2021. 5. 8. 22:37
1. ๋ฌธ์ ๐ 2. ์ ์ถ๋ ฅ ์ ๐ 3. ์๊ณ ๋ฆฌ์ฆ โ 1~n๊น์ง *์ ์ถ๋ ฅ์ํค๊ณ , ๋์ด์ฐ๊ธฐ๋ n-i๋งํผ ' '์ ์ถ๋ ฅ์ํจ๋ค 4. ์์ค์ฝ๋ ๐ป n = int(input()) for i in range(1, n+1): print(' ' * (n - i) + '*' * i)