๋ฌธ์ MinPerimeterRectangle coding task - Learn to Code - Codility Find the minimal perimeter of any rectangle whose area equals N. app.codility.com ๋ฌธ์ ํ์ด Count Factor์ ๊ฒฝ์ฐ ์ฝ์๋ฅผ ๋จ์ํ ์นด์ดํธ ํ์๋ค๋ฉด, ๋์ด๊ฐ ์ฃผ์ด์ง ๋ ๊ฐ์ฅ ์์ ๋๋ ๋ฅผ ๊ฐ์ง๋ ๊ฒฝ์ฐ๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. ๋์ด๊ฐ ์ฃผ์ด์ง ๋, ๋ ๋ณ์ ๊ธธ์ด๊ฐ ๋๋๊ฒ์ ๊ฐ๊ฐ์ ์ฝ์ ์ด๋ฏ๋ก, ์ฝ์ ์ค ๊ฐ์ฅ ํฐ ์ฝ์๋ฅผ ํตํด ๊ณ์ฐ๋ ๋๋ ๋ฅผ ๋ฐํํ๋ฉด ๋๋ค. ์ฝ๋ import math def solution(N): for num in range(int(math.sqrt(N)), 0, -1): if N % num == 0: break retu..
๋ฌธ์ CountFactors coding task - Learn to Code - Codility Count factors of given number n. app.codility.com ๋ฌธ์ ํ์ด ์๋ฅผ ๋ค์ด 24๋ผ๋ ์๊ฐ ์ฃผ์ด์ง๋ฉด 24์ ์ฝ์์ ๊ฐ์๋ฅผ ํจ์จ์ ์ผ๋ก ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. 24์ ์ฝ์๋ 1, 2, 3, 4, 6, 8, 12, 24๋ก ๊ฐ์๋ 8๊ฐ ์ด๋ค. ์ฝ๋ def solution(N): i = 1 ret = 0 while i * i < N: if N % i == 0: ret += 2 i += 1 return ret + 1 if i * i == N else ret ๋ธ๋ฃจํธํฌ์ค๋ก ํ๋ฉด ํจ์จ์ฑ ๋ถ๋ถ์ ํต๊ณผํ ์ ์๋ค. ์ฝ์๋ ๊ตฌํ๊ณ ์ ํ๋ ์์ธ N ๊น์ง ๋ชจ๋ ํ์ํ์ง ์์๋ ๋๋ ํน์ฑ์ ํ์ฉํ๋ฉด ์ฝ๊ฒ ..
๋ฌธ์ MaxSliceSum coding task - Learn to Code - Codility Find a maximum sum of a compact subsequence of array elements. app.codility.com ๋ฌธ์ ํ์ด Max Profit ๋ฌธ์ ์ ๋์ผํ๊ฒ ๋ธ๋ฃจํธ ํฌ์ค๋ก ํ์ง ์๊ณ , ์นด๋ฐ์ธ ์๊ณ ๋ฆฌ์ฆ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ํ ์ ์๋ค. ์ฝ๋ def solution(A): max_sum = sub_sum = A.pop(0) for num in A: sub_sum = max(sub_sum + num, num) max_sum = max(max_sum, sub_sum) return max_sum
๋ฌธ์ https://app.codility.com/programmers/lessons/9-maximum_slice_problem/max_profit/ MaxProfit coding task - Learn to Code - Codility Given a log of stock prices compute the maximum possible earning. app.codility.com ๋ฌธ์ ํ์ด ๋ฆฌ์คํธ์ ๊ฐ ๋ค์ ์ฃผ์์ ๊ฐ๊ฒฉ์ ๋ํ๋ด๊ณ , ์ธ๋ฑ์ค๋ ๋ ์ง์ด๋ค. ์ฃผ์์ ์ฐ ํ์ ํน์ ๋ ์ง์ ํ๋งคํ์์ ๋ ๊ฐ์ฅ ํฐ ์ด๋์ ๋ฐํํ๋ฉด ๋๋ค. ์ด๋์ด ์๋ ๊ฒฝ์ฐ(๋ง์ด๋์ค) ์๋ 0์ ๋ฐํํ๋ค. ์ฝ๋ def solution(A): if len(A) < 2: return 0 max_profit = None min_price..
๋ฌธ์ https://app.codility.com/programmers/lessons/8-leader/equi_leader/ EquiLeader coding task - Learn to Code - Codility Find the index S such that the leaders of the sequences A[0], A[1], ..., A[S] and A[S + 1], A[S + 2], ..., A[N - 1] are the same. app.codility.com ๋ฌธ์ ํ์ด Dominator ๋ฌธ์ ์๋ ๋ค๋ฅด๊ฒ, ๊ฐ ๊ตฌ๊ฐ ๋ณ๋ก left, right์ leader๊ฐ ์ผ์นํ๋์ง ํ์ธํ๋ ๋ฌธ์ ์ด๋ค. ์ฃผ์ด์ง ์์์ ๊ฒฝ์ฐ 4, 3, 4, 4, 4, 2์ด๋ค. ๋ฆฌ์คํธ์ ์์์ ๋ถํฐ ๊ตฌ๊ฐ์ left, right๋ก..
๋ฌธ์ https://app.codility.com/programmers/lessons/8-leader/dominator/ Dominator coding task - Learn to Code - Codility Find an index of an array such that its value occurs at more than half of indices in the array. app.codility.com ๋ฌธ์ ํ์ด ๋ฆฌ์คํธ์ ๊ฐ ๋ค ์ค, ํ๋์ ์๊ฐ ๋ฆฌ์คํธ ๊ธธ์ด์ ์ ๋ฐ ์ด์์ ์ฐจ์งํ๋ฉด dominator๊ฐ ๋๊ณ , ํด๋นํ๋ ์์ ๋ฐฐ์ด๋ด ์ธ๋ฑ์ค ์ค ์๋ฌด ๊ฐ์ด๋ ๋ฐํํ๋ฉด ๋๋ ๋ฌธ์ ์ด๋ค. ์ฝ๋ def solution(A): cnt = {} length = len(A) if not length: return -1..
๋ฌธ์ ์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์์ฅ programmers.co.kr ๋ฌธ์ ํ์ด ์์ฅ ํ ์ ์๋ ๋ฌผ๊ฑด์ ๊ฐ์ง์์ ๋ฐ๋ผ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. Counter๋ฅผ ์ด์ฉํ์ฌ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฝ๊ฒ ๊ตฌํ ์ ์๋ค. ์ฝ๋ from collections import Counter def solution(clothes): answer = 1 kinds = Counter([kind for _, kind in clothes]) nums = [x for x in kinds.values()] for num in nums: answer *= num + 1 return answer - 1 ์ธ์๋ก ์ฃผ์ด์ง๋ clothes ์์ ์ข ๋ฅ๋ฅผ Counter๋ฅผ ์ฌ์ฉํ์ฌ ์นด์ดํธ ํ๋ค. ๋ฌผ๊ฑด์ ์ข ๋ฅ์ ๋ฐ๋ผ (์ข ๋ฅ1 + 1) * (์ข ๋ฅ2 + 1) ....
๋ฌธ์ https://app.codility.com/programmers/lessons/7-stacks_and_queues/stone_wall/ StoneWall coding task - Learn to Code - Codility Cover "Manhattan skyline" using the minimum number of rectangles. app.codility.com ๋ฌธ์ ํ์ด ๊ฐ ๋์ ๋์ด๊ฐ ์ฃผ์ด์ง๊ณ , ๋๋ด์ ๊ตฌ์ฑํ๊ธฐ ์ํ ์ต์์ ๋์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. stack์ ์ด์ฉํ์ฌ, stack[-1]์ ๊ฐ์ด ํ์ฌ ๋์ ๋์ด ๋ณด๋ค ๋ฎ์ผ๋ฉด ๊ธฐ์ค์ ํ์ฌ๋ก ๋ณ๊ฒฝํ๋ค. stack[-1]์ด ํ์ฌ ๋์ ๋์ด๋ณด๋ค ๋์ผ๋ฉด ์นด์ดํธ๋ฅผ ์ฆ๊ฐํ๊ณ ์คํ์ ์ถ๊ฐํ๊ณ ๋ฐ๋์ผ ๊ฒฝ์ฐ ๋์ด๊ฐ ํด ๋๊น์ง stack.pop() ์..