๋ฌธ์ https://app.codility.com/programmers/lessons/3-time_complexity/tape_equilibrium/ ๋ฐฐ์ด์ ๋ค์ฏ๊ฐ์ ๊ฐ๋ค์ด ์์ผ๋ฉด ๊ฐ ๊ตฌ๊ฐ ๋ณ๋ก ๋๋์ด ๊ฐ์ ํฉ์ฐ ํ์ ์ฐจ๋ฅผ ๊ณ์ฐํ์ฌ ๊ฐ์ฅ ์์ ์ฐจ๊ฐ ๋๋ ๊ฐ์ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ํ์ด ์ฒ์์๋ list๋ฅผ ์ฌ๋ผ์ด์ฑํ์ฌ ๋ฌธ์ ์ ์ ๊ทผํ์๋ค. ์ฌ๋ผ์ด์ฑ์ผ๋ก ์ธํ ์ค๋ฒํค๋๊ฐ ๊ทธ๋ ๊ฒ ํฐ์ง๋ ์ฒ์ ์์๋ค. def soultion(A): min_diff = None for i in range(len(A) - 1): diff = abs(sum(A[:i + 1]) - sum(A[i + 1:])) if min_diff is None: min_diff = diff else: min_diff = min(min_diff, diff..
๋ฌธ์ https://app.codility.com/programmers/lessons/3-time_complexity/perm_missing_elem/ ๋ฐฐ์ด์ ์๋ ์์๋ค์ ์๋ N์ด๊ณ ๊ทธ ์ค ์๋ ์์๋ฅผ ์ฐพ์์ผ ํ๋ค. ์๋ฅผ ๋ค์ด 1, 2, 3, 5๋ผ๋ฉด ๋น ์ง ์๋ 4์ด๋ค. ๋ฌธ์ ํ์ด Counter๋ฅผ ํ์ฉํ๋ฉด ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค. ์ฝ๋ from collections import Counter def solution(A): check = [num + 1 for num in range(len(A) + 1)] return list(Counter(check) - Counter(A))[0]
๋ฌธ์ https://app.codility.com/programmers/lessons/3-time_complexity/frog_jmp/ ๊ฐ๊ตฌ๋ฆฌ์ ์ฒ์ ์์น๋ X์ด๋ค. ๊ฐ๊ตฌ๋ฆฌ๊ฐ ํ๋ฒ ์ ํํ ๋, ๊ณ ์ ๋ ๊ฑฐ๋ฆฌ D๋งํผ ์ด๋ํ ๊ฒฝ์ฐ Y์ ๋์ฐฉํ ์ ์๋ ์ต์ ์ ํ ํ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ํ์ด ๋ชซ๊ณผ ๋๋จธ์ง๋ฅผ ํ์ฉํ์ฌ์ ๋ฌธ์ ๋ฅผ ํ๋ฉด ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค. ์ฝ๋ def solution(X, Y, D): q, r = divmod(Y - X, D) return q + 1 if r else q
๋ฌธ์ https://app.codility.com/programmers/lessons/2-arrays/odd_occurrences_in_array/ ์ฃผ์ด์ง ๋ฐฐ์ด์ ํ์ ๊ฐ๋ค์ ๊ฐ๊ฐ ํ์์ ์ด๋ฃจ์ง๋ง, ํ๋์ ์๋ ์์ ์ด๋ฃจ์ง ๋ชปํ๋ค. ์ฆ, ์์ ์ด๋ฃจ์ง ๋ชปํ๋ ์๋ฅผ ์ฐพ์ผ๋ฉด ๋๋ค. ๋ฌธ์ ํ์ด ๋ฏธ๋ฆฌ ์ ๋ ฌํด๋๊ณ , ๊ฐ๊ฐ์ ๊ฐ์ ์์ ์ด๋ฃจ๋ฏ๋ก ์ธ๋ฑ์ค๋ฅผ 2๊ฐ์ฉ ํ์ธํ๋ฉด ํจ์จ์ฑ์ ๋์ผ ์ ์๋ค. ์ฝ๋ def solution(A): if len(A) == 1: return A[0] A = sorted(A) for i in range(0, len(A), 2): if i + 1 == len(A): return A[i] if A[i] != A[i + 1]: return A[i] ์ต์ด์ ์์ฑํ ์ฝ๋๋ ์๊ฐ ๋ณต์ก๋๋ก ์ธํด ํจ์จ์ฑ์ด..
๋ฌธ์ https://app.codility.com/programmers/lessons/2-arrays/cyclic_rotation/ ์ฃผ์ด์ง ๋ฐฐ์ด์ K์ ์๋งํผ ์ค๋ฅธ์ชฝ์ผ๋ก shiftํ ํ ๋ณํ๋ ๋ฐฐ์ด์ ๋ฐํํ๋ฉด ๋๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ํ์ด K๊ฐ ์ฃผ์ด์ง ๋ฐฐ์ด ๋ณด๋ค ํด ๊ฒฝ์ฐ, K ๊ฐ์ K %= len(A)๋ก ๋ณ๊ฒฝํ๋ฉด K๊ฐ ํฌ๋๋ผ๋ ์ฃผ์ด์ง ๋ฐฐ์ด ํฌ๊ธฐ ๋งํผ shiftํ๋ค. ์ฝ๋ from collections import deque def solution(A, K): length = len(A) if not length or length == K: return A if K > length: K %= length lst = deque(A) lst.rotate(K) return list(lst) deque๋ฅผ ํ์ฉํ๋ฉด, ..
๋ฌธ์ https://app.codility.com/programmers/lessons/1-iterations/ ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ฌ, ์ด์ง์์์ 1๊ณผ ๋ค์์ ๋ํ๋๋ 1์ฌ์ด์ ์ฐจ๊ฐ ๊ฐ์ฅ ํฐ ๊ฒฝ์ฐ๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ์์ ์ด์ง์๊ฐ 1001์ด๋ฉด ์ฐจ๋ 2๊ฐ ๋๊ณ , 1000์ผ ๊ฒฝ์ฐ 0์ด ๋๋ค. ๋ฌธ์ ํ์ด 1์ด ๋ฑ์ฅํ ์ดํ๋ก 1์ด ๋ค์ ๋ฐ๋ณต๋ ๋๊น์ง ์นด์ดํธํ์ฌ, ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ์ฝ๋ def solution(N): answer = 0 cnt = 0 binary = format(N, 'b') for num in binary: num = int(num) if not num: cnt += 1 else: if cnt > answer: answer = cnt cnt = 0 return answ..