전체 글 267

에라토스테네스의 체(Eratosthenes' sieve )

에라토스테네스의 체(Eratosthenes' sieve ) 그리스의 수학자이자 지리학자인 에라토스테네스가 고안한 소수를 찾는 방법이다. 에라토스테네스의 체 알고리즘 1. 1부터 n까지의 자연수를 전부 나열한다. 2. 소수도, 합성수도 아닌 1을 지운다. 3. 남아 있는 자연수 중 가장 작은 수인 2 의 배수들을 모두 지운다. 4. 남아 있는 자연수 중 가장 작은 수인 3의 배수들을 모두 지운다. 5. 남아 있는 자연수 중 가장 작은 수는 소수다. 이 수의 배수들을 모두 지운다. 6. 남은 자연수 중 가장 작은 수가 n의 제곱근을 넘을 때까지 과정 5를 반복하면, 남아 있는 수가 모두 소수다. 코드로 표현하기(Python) number = [False, False] + [True] * n answer = ..

Algorithm/개념 2021.06.18

[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 ) 그리스의 수학자이자 지리학자인 에라토스테네스가 고안한 소수를 찾는 ..

JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가

1. JVM이란 ? 자바 가상 머신(Java Virtual Machine)은 컴퓨터가 자바 프로그램을 실행할 수 있도록 도와준다. JVM은 자바 바이트코드를 실행할 수 있는 주체이다. C/C++ 는 컴파일 플랫폼이(운영체제 + CPU 아키텍처) 다를 경우, 프로그램이 동작하지 않는다. 동일한 플랫폼에서 컴파일과 실행한다면 프로그램은 아무 이상 없이 동작하겠지만, ⚠︎ 플랫폼이 달라질 경우, 타깃 플랫폼에서 프로그램이 동작하지 않는다. (예를 들면 윈도우에서 돌게 컴파일한 건 맥이나 리눅스에서 안 돌아가는 것) ➡︎ 그래서 이를 크로스 컴파일(타깃 플랫폼에 맞춰 컴파일하는 것)로 해결했다. 자바는 네트워크에 연결된 모든 디바이스에서 작동하는 것이 목적이었다. 디바이스마다 운영체제나 하드웨어가 다르기 때문에..

Language/Java 2021.06.11

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