프로그래머스 58

[Python] 소수 찾기

def solution(n): number = [False, False] + [True] * n answer = [] for i in range(2, n+1) : if number[i] : answer.append(i) for j in range(2*i, n+1, i) : number[j] = False return len(answer) 풀이 ★ 에라스토테네스의 체를 활용해야 효율성테스트를 통과할 수 있다. ★ 2021.06.18 - [Algorithm/개념] - 에라토스테네스의 체(Eratosthenes' sieve ) 에라토스테네스의 체(Eratosthenes' sieve ) 에라토스테네스의 체(Eratosthenes' sieve ) 그리스의 수학자이자 지리학자인 에라토스테네스가 고안한 소수를 찾는 ..

[Python] 카펫

def solution(brown, yellow): for i in range(1, int(yellow/2) + 2) : if yellow % i == 0 : width = int(yellow/i) b = i*2 + width*2 + 4 if b == brown : return [width+2, i+2] 풀이 노란색을 이용해서 테두리를 공략하는 풀이 노란색의 가로, 세로 길이를 알기만 하면 된다. 1. yellow의 약수라면, yellow를 감싸는 테두리의 갯수를 구한다. 2. 그 수가 brown과 같다면 i가 yellow의 가로가 된다. 3. yellow 가로 세로 길이에서 2를 더해 반환한다. (위 아래 그리고 양 옆을 brown이 감싸고 있으니 2씩 더한다)