์ ์ฒด ๊ธ
[Python] ํ๋ก๊ทธ๋๋จธ์ค ๊ดํธ ๋ณํ | DFS
~๋ชฉ์ฐจ~ ๋ฌธ์ ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/60058 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ์์ฑ ์ฝ๋ def check(par): # ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ธ์ง ํ์ธํ๋ ํจ์ stack = [] for p in par: if p == '(': stack.append('(') # '('๋ผ๋ฉด ์คํ์ ์ฝ์ elif p == ')' and stack: stack.pop() # ')'์ด๋ฉด์ ์คํ์ ๊ดํธ๊ฐ ์์ผ๋ฉด ์ถ๋ ฅ else: return False # ')'์ด๋ฉด์ s..
[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"..