๐Ÿ—๏ธ Algorithm/โฌ› ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 100

[Programmers] [2018 KAKAO BLIND RECRUITMENT] [Python] Level1_๋‹คํŠธ ๊ฒŒ์ž„

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/17682 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 1๋‹จ๊ณ„ - ๋‹คํŠธ๊ฒŒ์ž„ def solution(dartResult): stack = [] dartResult = dartResult.replace("10", "A") bonus = {'S': 1, 'D': 2, 'T': 3} for i in dartResult: if i.isdigit() or i=='A': stack.append(10 if i == 'A' else int(..

[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..

[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[..

[Programmers] [Summer/Winter Coding(~2018)] [Python] Level2_์ ํ”„์™€ ์ˆœ๊ฐ„์ด๋™

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12980 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - Summer/Winter Coding(~2018) - ์ ํ”„์™€ ์ˆœ๊ฐ„์ด๋™ def solution(n): ans = 0 while True: if n % 2 != 0: n -= 1 ans += 1 n = n // 2 if n == 0: return ans 2๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋ฉด ๊ณ„์† ์ˆœ๊ฐ„์ด๋™์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์ง์ˆ˜์ผ ๊ฒฝ์šฐ ์ˆœ๊ฐ„์ด๋™์„ ํ•˜๊ณ  n์ด ํ™€์ˆ˜์ผ ๊ฒฝ์šฐ ํ•œ์นธ ์•ž์œผ๋กœ ๊ฐ„๋‹ค..

[Programmers] [์—ฐ์Šต๋ฌธ์ œ] [Python] Level2_๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12914 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด def solution(n): if n

[Programmers] [์—ฐ์Šต๋ฌธ์ œ] [Python] Level2_๋‹ค์Œ ํฐ ์ˆซ์ž

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12911 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ๋‹ค์Œ ํฐ ์ˆซ์ž def solution(n): c = n+1 while True: if bin(c).count('1') == bin(n).count('1'): return c c += 1 ์ฒ˜์Œ c์— ๋‹ค์Œ ์ˆซ์ž๋ฅผ ์ €์žฅํ•˜๊ณ  bin ํ•จ์ˆ˜๋กœ ์ด์ง„์ˆ˜ ๋ณ€ํ™˜ ํ›„์— count ํ•จ์ˆ˜๋กœ ์ด์ง„์ˆ˜์˜ 1์˜ ๊ฐœ์ˆ˜๊ฐ€ n๊ณผ ๊ฐ™๋‹ค๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ•˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด c+1์„ ํ•ด์ค˜ ๋‹ค์Œ ์ˆซ์ž๋กœ ..