๋ฌธ์ https://app.codility.com/programmers/lessons/5-prefix_sums/min_avg_two_slice/ MinAvgTwoSlice coding task - Learn to Code - Codility Find the minimal average of any slice containing at least two elements. app.codility.com ๋ฌธ์ ๋ฅผ ๋ณด๋ฉด ๋ชจ๋ ๊ตฌ๊ฐ์ ๋ํด ํ๊ท ์ ๊ตฌํด์ผ ํ ๊ฒ ๊ฐ๋ค. ํ์ง๋ง ๋ชจ๋ ๊ตฌ๊ฐ์ ๋ํ ํ๊ท ์ ๊ตฌํ ๊ฒฝ์ฐ ํจ์จ์ฑ ๋ถ๋ถ์ ํต๊ณผํ์ง ๋ชปํ์ฌ ์ ์๋ฅผ ๋ฐ์ง ๋ชปํ๋ค. ์๋ธ ๊ทธ๋ฃน์์ ํ๊ท ์ ๊ตฌํ ๋์ ํน์ฑ์ ํ์ฉํ ๊ฒฝ์ฐ ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํด๊ฒฐ ํ ์ ์์ผ๋ ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ๋ ํ์ง ๋ชปํ๋ค. ๋ฌธ์ ํ์ด ์๋ฅผ ๋ค์ด ์๊ฐ 4, 2, 2..
๋ฌธ์ ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์์ฃผํ์ง ๋ชปํ ์ ์ ์๋ง์ ๋ง๋ผํค ์ ์๋ค์ด ๋ง๋ผํค์ ์ฐธ์ฌํ์์ต๋๋ค. ๋จ ํ ๋ช ์ ์ ์๋ฅผ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ์ ์๊ฐ ๋ง๋ผํค์ ์์ฃผํ์์ต๋๋ค. ๋ง๋ผํค์ ์ฐธ์ฌํ ์ ์๋ค์ ์ด๋ฆ์ด ๋ด๊ธด ๋ฐฐ์ด participant์ ์์ฃผํ ์ ์๏ฟฝ๏ฟฝ programmers.co.kr ๋ฌธ์ ํ์ด ์ฐธ์ฌ์์ ์์ฃผ์์ ๋ชฉ๋ก์ ํ์ํ์ฌ, ์์ฃผํ์ง ์์ ์ฌ๋์ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ๊ฐ ๋ฆฌ์คํธ๋ฅผ ํ์ํ์ฌ ์ ๋ต์ ๋์ถํ ์ ๋ ์์ง๋ง, ํ์ด์ฌ์ Counter๋ฅผ ์ ํ์ฉํ๋ฉด ๊ฐ๋จํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ์ด๋ค. ์ฝ๋ from collections import Counter def solution(participant, completion): return list(Counter(participant) - Counter(complet..
๋ฌธ์ https://app.codility.com/programmers/lessons/5-prefix_sums/genomic_range_query/ DNS ์ํ์ค๋ A, C, G, T๋ก ๋ํ๋ผ ์ ์๊ณ ๊ฐ๊ฐ์ impact factor๋ 1, 2, 3, 4์ด๋ค. P, Q ๋ฆฌ์คํธ๋ ๊ฐ๊ฐ ์์๊ณผ ๋์ ์ ๋ณด๋ฅผ ๊ฐ์ง๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค. ๋ง์ฝ CAGCCTA๋ผ๋ DNS ์ํ์ค๊ฐ ์ฃผ์ด์ง ๋ P[0] = 2, Q[0] = 4๋ผ๋ฉด DNS ์ํ์ค ์ค 2~4์ ํด๋นํ๋ ๊ฐ์ด ํ์ ๋ฒ์์ด๋ค. (CAGCCTA) ํ์ ๋ฒ์ ์ค ๊ฐ์ฅ ์์ impact factor๋ฅผ ๊ฐ์ง๋ ๊ฐ์ ์ฐพ์์ ๋ฐํํ๋ฉด ๋๋ค. ๋ฌธ์ ํ์ด prefix sum์ผ๋ก ํ ์ ์์ง๋ง, ์์ธ ์ฒ๋ฆฌ๋ก๋ ํด๋น ๋ฌธ์ ๋ฅผ ํ ์ ์๋ค. ์ฝ๋ def solution(S, P, Q..
๋ฌธ์ https://app.codility.com/programmers/lessons/5-prefix_sums/count_div/ A, B ์ฌ์ด์ ์๋ค ์ค K๋ก ๋๋์ด ๋จ์ด์ง๋ ์๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ํ์ด ์ํ์ ์ผ๋ก ํ๋ฉด ์ฝ๊ฒ ํ ์ ์๋ค. ์ฝ๋ def solution(A, B, K): answer = B // K - A // K if A % K == 0: answer += 1 return answer
๋ฌธ์ https://app.codility.com/programmers/lessons/4-counting_elements/perm_check/ ๋ฆฌ์คํธ์ ๊ฐ์ด ์์ด์ธ์ง ํ์ธํ๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ํ์ด Missing Integer์ ๋์ผํ ๋ฐฉ์์ผ๋ก ํ๋ฉด ๋๋ค. ์ฝ๋ def solution(A): sort = sorted(A) check_num = 1 for num in sort: if num == check_num: check_num += 1 return 1 if len(A) == check_num - 1 else 0
๋ฌธ์ https://app.codility.com/programmers/lessons/4-counting_elements/missing_integer/ ๋ฆฌ์คํธ๊ฐ ์ฃผ์ด์ง๋ฉด, ๋ฆฌ์คํธ์ ์กด์ฌํ์ง ์๋ ๊ฐ์ ์ฐพ๊ฑฐ๋ ๋ฆฌ์คํธ์ ๊ฐ์ด ๋ชจ๋ ์กด์ฌํ๋ ๊ฒฝ์ฐ์๋ ๋ค์์ ์๋ฅผ ๋ฐํํ๋ค. ๋ฆฌ์คํธ์ ์์๋ง ์กด์ฌํ๋ ๊ฒฝ์ฐ์๋ 1์ ๋ฐํํ๋ค. ๋ฌธ์ ํ์ด ์ ๋ ฌํ์ง ์๊ณ ๋ฌธ์ ๋ฅผ ํ๋ ค๊ณ ํ์๋๋ ์ฒดํฌ ๋ฆฌ์คํธ๋ฅผ ํ์ฉํ๊ณ , ์ฝ๋๋ ๋ณด๊ธฐ ํํ๊ฒ ๋ณํ๋ค. ํ์ง๋ง ์ ๋ ฌ์ ์ฌ์ฉํ๋ฉด ์์ฃผ ๊ฐ๋จํ๊ฒ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค. ์ฝ๋ def solution(A): sort = sorted(A) lost = 1 for num in sort: if num == lost: lost += 1 return lost
๋ฌธ์ https://app.codility.com/programmers/lessons/4-counting_elements/max_counters/ ๋ฆฌ์คํธ์ ๊ฐ์ด N์ดํ ์ผ ๊ฒฝ์ฐ์๋, ํด๋นํ๋ ์ธ๋ฑ์ค์ ๊ฐ์ 1 ์ฆ๊ฐ์ํค๊ณ N๋ณด๋ค ํฐ ๊ฐ์ธ ๊ฒฝ์ฐ์๋ ๋ชจ๋ ์ธ๋ฑ์ค ๊ฐ์ ํ์ฌ ๊ฐ์ max๋ก ๋ณ๊ฒฝํ๋ค. ๋ฌธ์ ํ์ด ๊ฐ ์ธ๋ฑ์ค์ ๊ฐ์ ์ถ๊ฐํ๋ค๊ฐ, N๋ณด๋ค ํฐ ๊ฐ์ด ๋ฐ์ํ ๊ฒฝ์ฐ answer = max(answer) * N๋ก ์ฒ๋ฆฌํ์๋๋ ํจ์จ์ฑ์ ํต๊ณผํ์ง ๋ชปํ์๋ค. def solution(N, A): answer = [0] * N for idx in A: print(answer) if idx > N: answer = [max(answer)] * N else: answer[idx - 1] += 1 return answer ์ฝ..
๋ฌธ์ https://app.codility.com/programmers/lessons/4-counting_elements/frog_river_one/ ๊ฐ๊ตฌ๋ฆฌ๊ฐ ๊ฐ๊ณ ์ ํ๋ ์์น๊ฐ X๋ผ๋ฉด, X์ ๋๋ฌํ๊ธฐ ์ํด ํ์ํ ๋ชจ๋ ๊ตฌ๊ฐ์ ๊ฑฐ์ณ์ผ ํ๋ค. ๋ฌธ์ ํ์ด ์นด์ดํธ์ ์ฒดํฌ ๋ฆฌ์คํธ๋ฅผ ํ์ฉํ์ฌ์ ๋ฌธ์ ๋ฅผ ํ๋ฉด ์ฝ๊ฒ ํ ์ ์๋ค. ์ฝ๋ def solution(X, A): check = [False] * X cnt = 0 for i in range(len(A)): if not check[A[i] - 1]: check[A[i] - 1] = True cnt += 1 if cnt == X: return i return -1 ์ง๋์จ ๊ตฌ๊ฐ์ ํ์ธํ๊ธฐ ์ํด ์ฒดํฌ๋ฆฌ์คํ ํตํด ํ์ธํ๋ค. ์นด์ดํธ๋ฅผ ํ์ฉํด ์นด์ดํธ ๊ฐ์ด ๊ฐ๊ณ ์ ํ๋ ์์น์..