๐Ÿ—๏ธ Algorithm 344

[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์„ ํ•ด์ค˜ ๋‹ค์Œ ์ˆซ์ž๋กœ ..

[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

[๋ฐฑ์ค€] [Python] 10773๋ฒˆ_์ œ๋กœ_์Šคํƒ

๋ฌธ์ œ https://www.acmicpc.net/problem/10773 10773๋ฒˆ: ์ œ๋กœ ์ฒซ ๋ฒˆ์งธ ์ค„์— ์ •์ˆ˜ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. (1 ≤ K ≤ 100,000) ์ดํ›„ K๊ฐœ์˜ ์ค„์— ์ •์ˆ˜๊ฐ€ 1๊ฐœ์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ •์ˆ˜๋Š” 0์—์„œ 1,000,000 ์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ, ์ •์ˆ˜๊ฐ€ "0" ์ผ ๊ฒฝ์šฐ์—๋Š” ๊ฐ€์žฅ ์ตœ๊ทผ์— ์“ด ์ˆ˜๋ฅผ ์ง€์šฐ๊ณ , ์•„๋‹ ๊ฒฝ www.acmicpc.net ํ’€์ด # ๋ฐฑ์ค€ 10773๋ฒˆ ๋ฌธ์ œ - ์ œ๋กœ n = int(input()) stack = [] for i in range(n): num = int(input()) if num == 0: stack.pop() else: stack.append(num) print(sum(stack)) ์ด ๋ฌธ์ œ๋Š” ์Šคํƒ์„ ์ด์šฉํ•ด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

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