๐๋ฌธ์ ํ์ด/๐งฉProgrammers
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ฌํ๊ฒฝ๋ก | DFS
~๋ชฉ์ฐจ~๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/43164 ํ๋ก๊ทธ๋๋จธ์ค์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.programmers.co.kr ๋ฌธ์ ํด๊ฒฐ ๊ณผ์ - ํฐ์ผ์ ํ ๋ฒ๋ง ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก ์ฌ์ฉํ์์ ๊ธฐ๋กํด์ผํจ (ํ์ง๋ง, ์ค๋ณต์ด ์์ ์ ์์)- ํน์ ๊ณตํญ์์ ๊ฐ ์ ์๋ ๊ณตํญ์ ์ฌ๋ฆผ์ฐจ์์ผ๋ก ๊ด๋ฆฌ- DFS๋ก ์ํํ๋ฉด์ ์ ๋ต์ด ๋ ์ ์๋ ์ฒซ๋ฒ์งธ ๊ฒฝ์ฐ๋ฅผ ๋ฐํ - ์ฃผ์ ์ฌํญ1. ํฐ์ผ์ ํ ๋ฒ๋ง ์ฌ์ฉํ ์ ์์ง๋ง, ๋์ผํ ๊ฒฝ๋ก์ ํฐ์ผ์ด 2๊ฐ ์ด์์ผ ์ ์์ ( 2๋ฒ ํ ์ผ)2. ํน์ ๊ณตํญ์์ ๋ค๋ฅธ..
[Python] ํ๋ก๊ทธ๋๋จธ์ค ์ ํ์ ์๊ฐ ์ด๋
~๋ชฉ์ฐจ~๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ์์ฑ ์ฝ๋ ๋ฌธ์ https://school.programmers.co.kr/learn/courses/30/lessons/12980 ํ๋ก๊ทธ๋๋จธ์ค์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.programmers.co.kr ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ- ์ํ์ ์ฌ๊ณ - ์๊ฐ์ด๋์ ๋น์ฉ์ด ๋ค์ง ์์ผ๋ฏ๋ก ์ด๋ฅผ ์ต๋ํ ํ์ฉํ ์ ์๋ ๊ฒฝ์ฐ๋ก ๊ฒ์ฐ ์์ฑ ์ฝ๋def solution(n): answer = 0 while n > 0: # ์๊ฐ ์ด๋์ ํ์ง ๋ชป ํ๋ ๋น์ฉ answer += n % 2 # ์๊ฐ์ด๋ n //= 2 return answer ..
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ ธ์ด์ ํ | ์ฌ๊ท ํธ์ถ | ๋ถํ ์ ๋ณต
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ ๋ค์ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๊ธฐ์ํด ํ๋ก๊ทธ๋๋จธ์ค์ ๋ค์ด๊ฐ๋ค. AI๊ฐ ๋ด๊ฐ ๋ถ์กฑํ ๋ฌธ์ ์ ํ์ ์ถ์ฒํด์ฃผ์๋๋ฐ, ๋ฐ๋ก ์ด ํ๋ ธ์ด์ ํ ๋ฌธ์ ์๋ค. ๋ด๊ฐ ๋งค๋ฒ ํ๋ค์ดํ๋ ๋ฌธ์ ์ด๊ณ , AI์ ํต์ฐฐ๋ ฅ์ ๊ฐํํ๋ค,, ๋ค์๋ ์์ด๋ฒ๋ฆฌ์ง ์๋๋ก ๋ธ๋ก๊ทธ๋ก ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค. https://school.programmers.co.kr/learn/courses/30/lessons/12946 ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์. programmers.co.kr ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - ์ ํ์ ์ธ ์ฌ๊ทํธ์ถ ๋ฌธ์ - ํ๋ ธ์ด ํ ์๋ฆฌ ์ดํดํ๊ธฐ * 3๊ฐ์ ๊ธฐ๋ฅ์์ ๊ฐ์ฅ ์ผ์ชฝ์..
[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"..