๐Ÿ—๏ธ Algorithm 344

[Programmers] [DFS/BFS] [Python] Level2_ํƒ€๊ฒŸ ๋„˜๋ฒ„

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/43165 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ํƒ€๊ฒŸ ๋„˜๋ฒ„ def solution(numbers, target): n = len(numbers) answer = 0 def dfs(idx, result): if idx == n: if result == target: nonlocal answer answer += 1 return else: dfs(idx+1, result+numbers[idx]) dfs(idx+..

[Programmers] [์Šคํƒ/ํ] [Python] Level2_ํ”„๋ฆฐํ„ฐ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/42587 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ํ”„๋ฆฐํ„ฐ def solution(priorities, location): answer = 0 from collections import deque d = deque([(v,i) for i,v in enumerate(priorities)]) print(d) while len(d): item = d.popleft() if d and max(d)[0] > item[0..

[Programmers] [์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ3] [Python] Level2_n^2 ๋ฐฐ์—ด ์ž๋ฅด๊ธฐ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/87390 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - n^2 ๋ฐฐ์—ด ์ž๋ฅด๊ธฐ def solution(n,left,right): answer = [] for i in range(left, right+1): answer.append((max(i//n, i%n))+1) return answer ์ฒ˜์Œ์— ์ด์ค‘ for๋ฌธ์„ ์‚ฌ์šฉํ•˜์˜€์œผ๋‚˜ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋–ณ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทœ์น™์„ ์ฐพ์•„์„œ ํ•ด๊ฒฐํ•˜์˜€๋‹ค.

[Programmers] [KAKAO BLIND RECRUITMENT] [Python] Level2_[1์ฐจ] ๋‰ด์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ง

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/17677 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด Counter ๋ฅผ ์‚ฌ์šฉํ•œ ํ’€์ด # [Programmers] [KAKAO BLIND RECRUITMENT] [Python] Level2_[1์ฐจ] ๋‰ด์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ง from collections import Counter def solution(str1, str2): str1 = str1.lower() str2 = str2.lower() new_str1 = [] new_str2 = [] fo..

[๋ฐฑ์ค€] [Python] 10799๋ฒˆ_์‡ ๋ง‰๋Œ€๊ธฐ_์Šคํƒ

๋ฌธ์ œ https://www.acmicpc.net/problem/10799 10799๋ฒˆ: ์‡ ๋ง‰๋Œ€๊ธฐ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์‡ ๋ง‰๋Œ€๊ธฐ๋ฅผ ๋ ˆ์ด์ €๋กœ ์ ˆ๋‹จํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ํšจ์œจ์ ์ธ ์ž‘์—…์„ ์œ„ํ•ด์„œ ์‡ ๋ง‰๋Œ€๊ธฐ๋ฅผ ์•„๋ž˜์—์„œ ์œ„๋กœ ๊ฒน์ณ ๋†“๊ณ , ๋ ˆ์ด์ €๋ฅผ ์œ„์—์„œ ์ˆ˜์ง์œผ๋กœ ๋ฐœ์‚ฌํ•˜์—ฌ ์‡ ๋ง‰๋Œ€๊ธฐ๋“ค์„ ์ž๋ฅธ๋‹ค. ์‡ ๋ง‰๋Œ€๊ธฐ์™€ ๋ ˆ์ด์ € www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 10799๋ฒˆ ๋ฌธ์ œ - ์‡ ๋ง‰๋Œ€๊ธฐ a = list(input()) s = [] b = 0 for i in range(len(a)): if a[i] == '(': s.append('(') else: if a[i-1] == '(': s.pop() b = b+len(s) else: s.pop() b = b+1

[๋ฐฑ์ค€] [Python] 4949๋ฒˆ_๊ท ํ˜•์žกํžŒ ์„ธ์ƒ_์Šคํƒ

๋ฌธ์ œ https://www.acmicpc.net/problem/4949 4949๋ฒˆ: ๊ท ํ˜•์žกํžŒ ์„ธ์ƒ ํ•˜๋‚˜ ๋˜๋Š” ์—ฌ๋Ÿฌ์ค„์— ๊ฑธ์ณ์„œ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ๋ฌธ์ž์—ด์€ ์˜๋ฌธ ์•ŒํŒŒ๋ฒณ, ๊ณต๋ฐฑ, ์†Œ๊ด„ํ˜ธ("( )") ๋Œ€๊ด„ํ˜ธ("[ ]")๋“ฑ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ธธ์ด๋Š” 100๊ธ€์ž๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ๊ฐ ์ค„์€ ๋งˆ์นจํ‘œ(".")๋กœ ๋๋‚œ๋‹ค www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 4949๋ฒˆ ๋ฌธ์ œ - ๊ท ํ˜•์žกํžŒ ์„ธ์ƒ bracket = ['(','[',')',']'] while True: stack = [] string = input() if string == '.': break for s in string: if s in bracket: # ๊ด„ํ˜ธ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ if len(stack) == 0: stack.append(s) continu..

[๋ฐฑ์ค€] [Python] 1966๋ฒˆ_ํ”„๋ฆฐํ„ฐ ํ_ํ,๋ฑ

๋ฌธ์ œ https://www.acmicpc.net/problem/1966 1966๋ฒˆ: ํ”„๋ฆฐํ„ฐ ํ ์—ฌ๋Ÿฌ๋ถ„๋„ ์•Œ๋‹ค์‹œํ”ผ ์—ฌ๋Ÿฌ๋ถ„์˜ ํ”„๋ฆฐํ„ฐ ๊ธฐ๊ธฐ๋Š” ์—ฌ๋Ÿฌ๋ถ„์ด ์ธ์‡„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฌธ์„œ๋ฅผ ์ธ์‡„ ๋ช…๋ น์„ ๋ฐ›์€ ‘์ˆœ์„œ๋Œ€๋กœ’, ์ฆ‰ ๋จผ์ € ์š”์ฒญ๋œ ๊ฒƒ์„ ๋จผ์ € ์ธ์‡„ํ•œ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฌธ์„œ๊ฐ€ ์Œ“์ธ๋‹ค๋ฉด Queue ์ž๋ฃŒ๊ตฌ์กฐ์— www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 1966๋ฒˆ ๋ฌธ์ œ - ํ”„๋ฆฐํ„ฐ ํ from collections import deque import sys t = int(input()) for i in range(t): n, m = map(int, input().split()) queue = deque(list(map(int, sys.stdin.readline().split()))) count = 0 while queue: best..

[๋ฐฑ์ค€] [Python] 2164๋ฒˆ_์นด๋“œ2_ํ,๋ฑ

๋ฌธ์ œ https://www.acmicpc.net/problem/2164 2164๋ฒˆ: ์นด๋“œ2 N์žฅ์˜ ์นด๋“œ๊ฐ€ ์žˆ๋‹ค. ๊ฐ๊ฐ์˜ ์นด๋“œ๋Š” ์ฐจ๋ก€๋กœ 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๊ฐ€ ๋ถ™์–ด ์žˆ์œผ๋ฉฐ, 1๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์œ„์—, N๋ฒˆ ์นด๋“œ๊ฐ€ ์ œ์ผ ์•„๋ž˜์ธ ์ƒํƒœ๋กœ ์ˆœ์„œ๋Œ€๋กœ ์นด๋“œ๊ฐ€ ๋†“์—ฌ ์žˆ๋‹ค. ์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์ž‘์„ ์นด๋“œ๊ฐ€ www.acmicpc.net ํ’€์ด from collections import deque n,k = map(int,input().split()) queue = deque() for i in range(1,n+1): queue.append(i) print("")

[Programmers] [์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ2] [Python] Level2_๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/76502 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ2 - ๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ from collections import deque def check(s): answer = 0 stack = [] for i in s: if len(stack) == 0: stack.append(i) else: if i == ')' and stack[-1] == '(': stack.pop() elif i == '}..

[Programmers] [2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ] [Python] Level2_ํŠœํ”Œ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/64065 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - 2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ - ํŠœํ”Œ def solution(s): answer = [] s_list = list(map(int, s.replace("{", "").replace("}", "").split(","))) number = {} for i in s_list: if i not in number: number[i] = 1 else: number[..