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

[Programmers] [์—ฐ์Šต๋ฌธ์ œ] [Python] Level2_ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜

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

[Programmers] [2017 ํŒ์Šคํƒ€์šด] [Python] Level2_์˜ˆ์ƒ ๋Œ€์ง„ํ‘œ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12985# ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - 2017 ํŒ์Šคํƒ€์šด - ์˜ˆ์ƒ ๋Œ€์ง„ํ‘œ def solution(n, a, b): answer = 0 while a != b: answer += 1 a, b = (a + 1) // 2, (b + 1) // 2 # +1์„ ํ•œ ๋’ค 2๋กœ ๋‚˜๋ˆˆ ๋ชซ์„ ์ €์žฅํ•˜๋Š” ์ด์œ ๋Š” # a, b๊ฐ€ ํ™€์ˆ˜์ด๊ฑด ์ง์ˆ˜์ด๊ฑด 1์„ ๋”ํ•ด์„œ ๋ชซ์œผ๋กœ ๋‚˜๋ˆ„๋ฉด # ๋‹ค์Œ ๋ผ์šด๋“œ์˜ ๋ฒˆํ˜ธ๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Œ retur..

[Programmers] [์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€ ์‹œ์ฆŒ1] [Python] Level2_์ด์ง„ ๋ณ€ํ™˜ ๋ฐ˜๋ณตํ•˜๊ธฐ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/70129 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - 2018์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€1 - ์ด์ง„ ๋ณ€ํ™˜ ๋ฐ˜๋ณตํ•˜๊ธฐ def solution(s): answer = [] countZero = 0 # ์ œ๊ฑฐ๋œ 0์˜ ๊ฐœ์ˆ˜ countBinary = 0 # ์ด์ง„ ๋ณ€ํ™˜ ํšŸ์ˆ˜ while True: if s == '1': # s๊ฐ€ 1์ด ๋˜์—ˆ์„๋•Œ ์ค‘๋‹จ break countBinary += 1 # ์ด์ง„ ๋ณ€ํ™˜์„ ํ•˜์˜€์œผ๋ฏ€๋กœ +1 countZero ..

[Programmers] [2018 KAKAO BLIND RECRUITMENT] [Python] Level2_[1์ฐจ]์บ์‹œ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/17680 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - [1์ฐจ] ์บ์‹œ from collections import deque def solution(cacheSize, cities): if cacheSize == 0: return 5 * len(cities) answer = 0 cache = deque(maxlen=cacheSize) for city in cities: city = city.upper() if cit..

[Programmers] [ํƒ์š•๋ฒ•(Greedy)] [Python] Level2_๊ตฌ๋ช…๋ณดํŠธ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/42885 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด ๋‚˜์˜ ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ๊ทธ๋ฆฌ๋”” - ๊ตฌ๋ช…๋ณดํŠธ from collections import deque def solution(people, limit): answer = 0 people = deque(sorted(people, reverse = True)) # deque ์„ ์–ธ while len(people) > 1: if people[0] + people[-1]

[Programmers] [2017 ํŒ์Šคํƒ€์šด] [Python] Level2_์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12973 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - 2017ํŒ์Šคํƒ€์šด - ์ง์ง€์–ด ์ œ๊ฑฐํ•˜๊ธฐ def solution(s): stack = [] for i in s: if not stack: # stack์ด ๋น„์–ด์žˆ์„ ๊ฒฝ์šฐ stack์— push stack.append(i) elif stack[-1] == i: # stack์˜ ๋งˆ์ง€๋ง‰ ์›์†Œ์™€ s์—์„œ pop๋˜๋Š” ์›์†Œ๊ฐ€ ๊ฐ™์€ ๊ฒฝ์šฐ stack.pop() else: # stack..

[Programmers] [์™„์ „ํƒ์ƒ‰] [Python] Level2_์นดํŽซ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/42842 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ์™„์ „ํƒ์ƒ‰ - ์นดํŽซ def solution(brown, yellow): answer = [] total = brown + yellow for weight in range(total, 2, -1): if total % weight == 0: height = total // weight if yellow == (weight-2) * (height-2): return..

[Programmers] [์—ฐ์Šต๋ฌธ์ œ] [Python] Level2_์ˆซ์ž์˜ ํ‘œํ˜„

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12924 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ์ˆซ์ž์˜ ํ‘œํ˜„ def solution(n): answer = 0 for i in range(1, n+1): sum = 0 for j in range(i, n+1): sum += j if sum == n: answer += 1 break elif sum > n : break return answer 2์ค‘ for๋ฌธ์„ ํ†ตํ•ด์„œ ์ฒซ๋ฒˆ์งธ for๋ฌธ์—์„œ๋Š” 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ n๊นŒ..

[Programmers] [์Šคํƒ/ํ] [Python] Level2_์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ

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

[Programmers] [์—ฐ์Šต ๋ฌธ์ œ] [Python] Level2_์ตœ์†Ÿ๊ฐ’ ๋งŒ๋“ค๊ธฐ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12941 ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr ํ’€์ด # ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2๋‹จ๊ณ„ - ์ตœ์†Ÿ๊ฐ’ ๋งŒ๋“ค๊ธฐ def solution(A,B): answer = 0 A.sort() # ์˜ค๋ฆ„์ฐจ์ˆœ B.sort(reverse=True) # ๋‚ด๋ฆผ์ฐจ์ˆœ for i in range(len(A)): answer += A[i]*B[i] return answer ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” A์˜ ์ตœ์†Ÿ๊ฐ’๊ณผ B์˜ ์ตœ๋Œ“๊ฐ’์„ ๊ณฑํ–ˆ์„ ๋•Œ ์ตœ์†Ÿ๊ฐ’์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค๋Š” ๊ตฌ์กฐ๋ฅผ ํŒŒ์•…ํ•˜์˜€๋‹ค. ๊ทธ ..