๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ
[Python] ํ๋ก๊ทธ๋๋จธ์ค ํผ๋ณด๋์น ์ | DP
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/12945 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ์ ํ์ ์ธ DP(Dynamic Programming, ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ) ๋ฌธ์ ํ ๋ฒ ๊ณ์ฐํ ๊ฒฐ๊ณผ์ ๋ํด ์ ์ฅํด๋์ด ์ดํ ๋ค์ ๊ณ์ฐํ์ง ์๋๋ค - 0 ~ n ํผ๋ณด๋์น ์๋ฅผ ์ ์ฅํ ๋ฆฌ์คํธ ์ ์ธ ํ 0๊ณผ 1์ ๋ํ์ฌ ์ด๊ธฐ๊ฐ ์ค์ - 2 ~ n๊น์ง f(n) = f(n-1) + f(n-2)๋ฅผ ์ํ - dp[n]์ ๋ฐํํ๋ 1234567..
[Python] ํ๋ก๊ทธ๋๋จธ์ค ๋ค์ ํฐ ์ซ์
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/12911 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ์์ฑ ์ฝ๋ def solution(n): cnt1 = str(bin(n)[2:]).count("1") for answer in range(n + 1, 1000001): if cnt1 == str(bin(answer)[2:]).count("1"): return answer bin ๋ด์ฅ ํจ์์ ๋ํด ๋ ์๊ณ ์ถ๋ค๋ฉด ๋ค์ ๊ธ ์ฐธ๊ณ ํ์ธ์! 2023.02.1..
[Python] ํ๋ก๊ทธ๋๋จธ์ค ๋จ์ด ๋ณํ | BFS
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/43163 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ์์ฑ ์ฝ๋ from collections import deque def solution(begin, target, words): if target not in words: return 0 wordlen = len(begin) def diff1(w1, w2): # ๋ ๋จ์ด๊ฐ ์ํ๋ฒณ ํ๋๋ง ๋ค๋ฅธ์ง ํ๋ณํ๋ ํจ์ cnt = 0 for i in range(..
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ซ์์ ํํ | DP
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/12924 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - 1 ~ 10000๋ฅผ ํํํ ์ ์๋ ์ฐ์๋ ์๋ฅผ ๋ชจ๋ ์ฐพ์ ๊ทธ ๊ฐ์๋ฅผ ๊ฐ ๋ฆฌ์คํธ์ ์ ์ฅํ๋ค. - ๋ณธ์ธ ์์ ์ผ๋ก ํํํ ์ ์์ผ๋ฏ๋ก ํํ ๊ฐ๋ฅํ ์ฐ์ ์๋ 1๊ฐ ์ด์์ด๋ค. - ์ฐ์ ์๋ก ํํํ ์ ์๋ ์๋ 2์ค for๋ฌธ์ผ๋ก ์ฐพ์ ๊ฐ ์ธ๋ฑ์ค ๋ฆฌ์คํธ์ +1 ์ํ ๊ฐ์ฅ ๋ฐ๊นฅ for๋ฌธ์ ์ฐ์ ์์ ์ฒซ๋ฒ์งธ ์ ๋๋ฒ์งธ for๋ฌธ์ ์ซ์๋ฅผ ์..
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ
~๋ชฉ์ฐจ~ ๋ฌธ์ ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/70129 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ์์ฑ ์ฝ๋ ํ์ด 1 def solution(s): answer = [0, 0] def binary_trans(x): # ์ ๋ ฅ๋ ์ซ์๋ฅผ 2์ง์๋ก ๋ณํ ํ๋ ํจ์ answer = "" while x > 0: answer += str(x % 2) x //= 2 return answer while s != "1": # 1์ด ๋๊ธฐ ์ ๊น์ง ๋ฐ๋ณต temp = s.count("0"..
[SSAFY] 10๊ธฐ ์ ๊ณต์ ํฉ๊ฒฉ ํ๊ธฐ | ์์ธ์ด | ์ฝ๋ฉํ ์คํธ | ์ธํฐ๋ทฐ
~๋ชฉ์ฐจ~ ์ง์๋๊ธฐ ์์ธ์ด ์ฝ๋ฉ ํ ์คํธ ์ธํฐ๋ทฐ ๋ฉด์ ์คํฐ๋ PT ๋ฉด์ ์ธ์ฑ/๊ธฐ์ ๋ฉด์ ํ๊ธฐ ๊ธ์ ๋ง์น๋ฉฐ ์ง์์ ์ ์ ์์ธ์ด ์ ์ถ SW ์ ์ฑ์ง๋จ ์ธํฐ๋ทฐ ์ ๊ณผ ๋ฐ ๊ต์ก 4/24(์) ~ 5/8(์) 5/9(ํ) ~ 5/20(ํ ) SW ๋น์ ๊ณต : 5/13(ํ ) SW ์ ๊ณต : 5/21(์ผ) 6/7(์) ~ 6/13(ํ) 23๋ 7์ ~ ์ง์๋๊ธฐ SW ๋ง์์คํธ๋ก๋ฅผ ์ค๋นํ๋ ์ ๊ฐ ํจ๋ฐฐ์ ์ด๋ง์ ๋ณด๊ณ SSAFY๋ฅผ ์ค๋นํ๊ฒ ๋์์ต๋๋ค. ์กธ์ ๊ณผ ๋์์ ๋ง๋งํ ์ทจ์ ์์ฅ์์ ์ฌ์ ์ ๋์์ ๋ฐ์ผ๋ฉฐ ๊ณต๋ถํ ์ ์๋ ์ข์ ๊ธฐํ๋ผ๊ณ ํ๋จ์ด ๋์๊ธฐ ๋๋ฌธ์ ๋๋ค. ์์ธ์ด ๋ค์์ ์ธํผ์์ ์ ๊ณตํ ์์ธ์ด ์ง๋ฌธ์ ๋๋ค. ์์ธ์ด ์์ฑ์์ ์๊ตฌํ๋ ๋๋ก ์ด๋ค ๊ฐ๋ฐ์๊ฐ ๋๊ณ ์ถ์์ง, ์ด๋ค ํ๋๋ค์ ํ๋์ง, ์ ์ง์ํ๋์ง ์ ๋ถ๋ฐฐํ์ฌ ์์ฑํ์๋ฉด ๋ฉ๋๋ค. ..
[Python] ๋ฐฑ์ค 9655 ๋ ๊ฒ์ | DP
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/9655 9655๋ฒ: ๋ ๊ฒ์ ์๊ทผ์ด๊ฐ ๊ฒ์์ ์ด๊ธฐ๋ฉด SK๋ฅผ, ์ฐฝ์์ด๊ฐ ๊ฒ์์ ์ด๊ธฐ๋ฉด CY์ ์ถ๋ ฅํ๋ค. www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - DP(๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ) - ๊ธฐ๋ก์ ์ํ dp ๋ฐฐ์ด : 0์ SK, 1์ CY๋ฅผ ์๋ฏธ - N์ด 1์ผ ๋ : SK N์ด 2์ผ ๋ : SK -> CY N์ด 3์ผ ๋ : SK ๋๋ SK -> CY -> SK ์ด๋ฏ๋ก ๊ฒฐ๋ก ์ ์ผ๋ก SK N์ด 4์ผ ๋ : 1์ผ ๋ ๊ฒฐ๊ณผ์ ๋ค๋ฅธ ์ฌ๋ ๋๋ 3์ผ ๋ ๊ฒฐ๊ณผ์ ๋ค๋ฅธ ์ฌ๋, ๊ฒฐ๋ก ์ ์ผ๋ก CY ...... - ์ ํ์ N์ด 4์ด์์ผ ๋, ai = (ai-1 + 1) % 2 ๋๋ ai = (ai-3 + 1) % 2 ์์ฑ ์ฝ๋ ..
[Python] ๋ฐฑ์ค 2579 ๊ณ๋จ ์ค๋ฅด๊ธฐ | DP
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/2579 2579๋ฒ: ๊ณ๋จ ์ค๋ฅด๊ธฐ ๊ณ๋จ ์ค๋ฅด๊ธฐ ๊ฒ์์ ๊ณ๋จ ์๋ ์์์ ๋ถํฐ ๊ณ๋จ ๊ผญ๋๊ธฐ์ ์์นํ ๋์ฐฉ์ ๊น์ง ๊ฐ๋ ๊ฒ์์ด๋ค. ๊ณผ ๊ฐ์ด ๊ฐ๊ฐ์ ๊ณ๋จ์๋ ์ผ์ ํ ์ ์๊ฐ ์ฐ์ฌ ์๋๋ฐ ๊ณ๋จ์ ๋ฐ์ผ๋ฉด ๊ทธ ๊ณ๋จ์ ์ฐ์ฌ ์๋ ์ www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ์ต๋ 300๊ฐ ๊ณ๋จ์ ์ ์๋ฅผ ๊ธฐ๋กํ ๋ฐฐ์ด ๋ฏธ๋ฆฌ ์ ์ธ - ๊ณ๋จ ๋ณ ์ ์ ๊ธฐ๋ก ๋ฐฐ์ด๊ณผ dp ๊ธฐ๋ก์ ์ ์ฅํ ๋ฐฐ์ด 2๊ฐ ํ์ - ๊ณ๋จ 1 : ๋ณธ์ธ ์ ์ ๊ณ๋จ 2 : ๊ณ๋จ 1 + ๋ณธ์ธ ์ ์ ๊ณ๋จ 3 : max(๊ณ๋จ 1 + ๋ณธ์ธ , ๊ณ๋จ 2 + ๋ณธ์ธ) - ์ ํ์ : max( ๋ณธ์ธ ์ด์ ๊ณ๋จ ๋ฐ๊ณ ๋ณธ์ธ , ๋ณธ์ธ ์ด์ ๊ณ๋จ ๋ฐ์ง ์๊ณ ๋ณธ์ธ) ai = ma..
[Python] ๋ฐฑ์ค 1966 ํ๋ฆฐํฐ ํ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/1966 1966๋ฒ: ํ๋ฆฐํฐ ํ ์ฌ๋ฌ๋ถ๋ ์๋ค์ํผ ์ฌ๋ฌ๋ถ์ ํ๋ฆฐํฐ ๊ธฐ๊ธฐ๋ ์ฌ๋ฌ๋ถ์ด ์ธ์ํ๊ณ ์ ํ๋ ๋ฌธ์๋ฅผ ์ธ์ ๋ช ๋ น์ ๋ฐ์ ‘์์๋๋ก’, ์ฆ ๋จผ์ ์์ฒญ๋ ๊ฒ์ ๋จผ์ ์ธ์ํ๋ค. ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์๊ฐ ์์ธ๋ค๋ฉด Queue ์๋ฃ๊ตฌ์กฐ์ www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ์๋ฃ๊ตฌ์กฐ ํ - ์์๋ฅผ ๋ํ๋ด๋ ๋๊ฐ์ ๋ณ์๋ฅผ ์ ๊ตฌ๋ถํ์ฌ ์ธ์งํ์ฌ์ผํ๋ค. * ๋จ์ ์ฐ์ ์์ ์ค ์ต๋๊ฐ์ด๋ฏ๋ก ์ถ๋ ฅํ๋ ์์ * ์ด๊ธฐ ํ์ ๊ฐ ๋ฌธ์ ์์ - ํ์ (์ค์๋, ์์น) ๊ฐ์ ์ฝ์ ํ๋ค. ์์น๊ฐ์ ์ฝ์ ํ๋ ์ด์ ๋ M๊ณผ ๋น๊ตํ์ฌ ์ฐพ๋ ๋ฌธ์์ธ์ง ํ์ธํ๊ธฐ ์ํจ - ์ด๊ธฐ ํ๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค. ๋งค๋ฒ ํ์ ์ต๋๊ฐ์ ๊ตฌํ๋ ๊ฒ๋ณด๋ค..