๐๋ฌธ์ ํ์ด
[JAVA] ๋ฐฑ์ค 2961 ๋์์ด๊ฐ ๋ง๋ ๋ง์๋ ์์
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/2961 2961๋ฒ: ๋์์ด๊ฐ ๋ง๋ ๋ง์๋ ์์ ์ฒซ์งธ ์ค์ ์ฌ๋ฃ์ ๊ฐ์ N(1 ≤ N ≤ 10)์ด ์ฃผ์ด์ง๋ค. ๋ค์ N๊ฐ ์ค์๋ ๊ทธ ์ฌ๋ฃ์ ์ ๋ง๊ณผ ์ด๋ง์ด ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์ฃผ์ด์ง๋ค. ๋ชจ๋ ์ฌ๋ฃ๋ฅผ ์ฌ์ฉํด์ ์๋ฆฌ๋ฅผ ๋ง๋ค์์ ๋, ๊ทธ ์๋ฆฌ์ ์ ๋ง๊ณผ ์ด๋ง์ www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - DFS, ์์ ํ์ - ์ ๋ง๊ณผ ์ด๋ง์ ์ ์ฅํ ๋ฐฐ์ด์ ํ๋์ฉ ๋ฐฉ๋ฌธํ๋ฉฐ ๋ฃ์์ง ์ ๋ฃ์์ง ํ์ธํ๋ค - ๋ชจ๋ ์์์ ๋ฃ์์ง ์ ๋ฃ์์ง ํ์ธํ์์ ๋, ์ด๋ง๊ณผ ์ ๋ง์ ์ฐจ์ด๊ฐ answer๋ณด๋ค ์๋ค๋ฉด answer๋ฅผ ์ ๋ฐ์ดํธ - ์์ ํ์ ํ answer๋ฅผ ์ถ๋ ฅ ์์ฑ ์ฝ๋ import java.util.*; import..
[Python] ๋ฐฑ์ค 1654 ๋์ ์๋ฅด๊ธฐ | ์ด์ง ํ์ | ์๊ฐ ์ด๊ณผ
~๋ชฉ์ฐจ~ ๋ฌธ์ ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ ์์ฑ ์ฝ๋ ๋ฌธ์ https://www.acmicpc.net/problem/1654 1654๋ฒ: ๋์ ์๋ฅด๊ธฐ ์ฒซ์งธ ์ค์๋ ์ค์์์ด ์ด๋ฏธ ๊ฐ์ง๊ณ ์๋ ๋์ ์ ๊ฐ์ K, ๊ทธ๋ฆฌ๊ณ ํ์ํ ๋์ ์ ๊ฐ์ N์ด ์ ๋ ฅ๋๋ค. K๋ 1์ด์ 10,000์ดํ์ ์ ์์ด๊ณ , N์ 1์ด์ 1,000,000์ดํ์ ์ ์์ด๋ค. ๊ทธ๋ฆฌ๊ณ ํญ์ K โฆ N ์ด๋ค. ๊ทธ www.acmicpc.net ๋ฌธ์ ํด๊ฒฐ ํฌ์ธํธ - N์ ๋ฒ์๊ฐ ํฌ๋ฏ๋ก ์ด์งํ์์ผ๋ก ํ์ดํด์ผ ํ๋ค. - ๊ธธ์ด๊ฐ ๊ฐ์ฅ ๊ธด ๋์ ์ end๊ฐ, 0์ start๊ฐ์ผ๋ก ๋๊ณ ์ค๊ฐ ๊ฐ์ผ๋ก mid๋ฅผ ์ ์ธํ๋ค. - start์ end๊ฐ ๊ต์ฐจ๋๋ ์ง์ ์์ ์ข ๋ฃํ๋ while๋ฌธ์ ์์ฑํ์ฌ ์ต๋ ๊ธธ์ด๋ฅผ ์ฐพ๋๋ค. - mid๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ชจ๋ ๋์ ๋ณ ์์ฑ๋๋ ๋์ ๊ฐ์๋ฅผ ๋ชจ..
[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"..
[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 ์์ฑ ์ฝ๋ ..