Algorithm/Programmers 73

[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씩 더한다)

[Python] 큰 수 만들기

def solution(number, k): answer = [number[0]] for num in number[1:] : while len(answer)>0 and answer[-1] 0 : answer.pop() k -= 1 answer.append(num) if k != 0 : answer = answer[:-k] return ''.join(answer) 풀이 1. answer에 값을 순서대로 삽입한다. 2. 들어오는 값이 answer에 있는 값보다 크다면 answer의 값을 빼주고 k에서 1을 빼준다. (반복) 3. k만큼 숫자를 빼주지 못했다면, 뒤에서부터 k만큼(남은 부분) 삭제해준다. * 처음에 while 대신 if를 썼었는데 그렇게 되면, test 3번 "4177..