๐Ÿ“๋ฌธ์ œ ํ’€์ด

    [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 ์ž‘์„ฑ ์ฝ”๋“œ ..