PYTHON

Python/백준 문제 풀이

백준 python 문제 - 직사각형에서 탈출

[문제 간단 설명] (0,0) 과 (w,h) 가 대각선 꼭짓점인 직사각형안의 임의위 좌표 (x,y)에서 직사각형 변에 이르는 최단거리를 구하라는 문제. [문제 풀이 핵심] 1. x,y,w,h를 입력을 받는다. 2. 최단 거리는 각 변에 수직으로 꽂는 거리다. [문제 풀이 과정] 1. 다른 언어는 다르지만, 파이썬은 친절하게도 리스트 내의 최소값을 바로 호출해주는 min이라는 함수가 있다. 이것을 이용하면 별 다른 복잡한 과정 없이 쉽게 프로그램을 만들 수 있다. [소스 코드] import sys x, y, w, h = map(int, sys.stdin.readline().split()) x1 = w - x x2 = x y1 = h - y y2 = y number_list = [x1, x2, y1, y2]..

카테고리 없음

백준 python 문제 - 골드바흐의 추측(9020)

[문제 간단 설명] 2보다 큰 짝수 n이 주어졌을 때, 두 개의 소수로 합을 나타낼 수 있는 프로그램을 만들어라. [문제 풀이 핵심] 1. 2보다 큰 짝수 n은 짝수이다. 2. 문제에서 방법이 여러가지가 있다고 하더라도 두 숫자의 차가 최소가 되는 방법을 사용하라고 명시하였다. 3. 숫자의 범위는 4부터 10,000까지이다. [문제 풀이 과정] 1. 에라토스테네스의 체의 원리를 이용한다. 에라토스테네스의 체란 2부터 시작해서 각각 숫자의 배수를 지워나가는 과정을 의미힌다. 이 과정을 사용하면 하나하나 숫자를 확인하는 것보다 작동 시간을 획기적으로 줄일 수 있다. [소스 코드] import sys T = int(sys.stdin.readline()) demicial_list = [False, False] ..

Python/백준 문제 풀이

백준 python 문제 - 베르트랑 공준(4948)

[문제 간단 설명] 자연수 N에 대하여 N보다 크고 2N보다 작거나 같은 수에 대하여 사이에 소수가 적어도 1개는 존재하는 것을 증명하는 프로그램을 제작한다. [문제 풀이 핵심] 1. N을 입력 받고, N과 2N의 사이의 범위를 지정해야 한다. 2. 사이에 소수를 구하는 프로그램을 제작하고, 그 수를 측정하는 방식을 사용한다. 3. 테스트 케이스의 개수는 따로 정해지지 않았으며, 0이 입력되는 순간 프로그램이 종료되어야 한다. [문제 풀이 과정] 1. 에라토스테네스의 체의 원리를 이용한다. 에라토스테네스의 체란 2부터 시작해서 각각 숫자의 배수를 지워나가는 과정을 의미힌다. 이 과정을 사용하면 하나하나 숫자를 확인하는 것보다 작동 시간을 획기적으로 줄일 수 있다. [소스 코드] import sys #파이..

Python/백준 문제 풀이

백준 python 문제 - 소수 구하기(1929)

[문제 간단 설명] M과 N 사이의 수 중에서 소수만을 골라 순서대로 출력하는 것이다. [문제 풀이 핵심] 1. 두 숫자의 사이의 범위를 지정해야 한다. 2. 소수를 구해서 순서대로 출력해야 한다. 3. 백만 단위의 큰 숫자가 나오므로 프로그램 작동 과정이 간결해야한다. [문제 풀이 과정] 1. 에라토스테네스의 체의 원리를 이용한다. 에라토스테네스의 체란 2부터 시작해서 각각 숫자의 배수를 지워나가는 과정을 의미힌다. 이 과정을 사용하면 하나하나 숫자를 확인하는 것보다 작동 시간을 획기적으로 줄일 수 있다. [소스 코드] import sys M, N = map(int, sys.stdin.readline().split()) demicial_list = [False, False] + [True]*(N-1) ..

Python/백준 문제 풀이

백준 python 문제 풀이 - 소인수분해(11653)

[문제 간단 설명] 정수 N의 소인수분해하는 프로그램을 작성하는 것이다. [문제 풀이 핵심] 1. 소인수분해를 오름차순으로 출력해야 한다. 2. 1인 경우 아무것도 출력하지 않는다. [문제 풀이 과정] 1. 소인수분해는 1이 될 때까지 나누는 것, 즉 while 조건문을 사용해 N이 1이 될 때까지 반복한다. 2. N을 나누는 수를 2부터 차례대로 1씩 증가하게 만든다. [소스 코드] import sys N = int(sys.stdin.readline()) a = 2 while N > 1: if N % a == 0: N = N//a print(a) else: a += 1

Python/백준 문제 풀이

백준 python 문제풀이 - 소수(2581)

[문제 간단 설명] M과 N 사이의 수 중에서 소수만을 골라 합을 구하고, 최솟값을 구하는 문제이다. [문제 풀이 핵심] 1. 두 숫자의 사이의 범위를 지정해야 한다. 2. 소수를 구해야 한다. 3. 소수 모임의 합을 구하고, 최솟값을 호출해야 한다. [문제 풀이 과정] 1. for 문을 사용해 두 숫자 사이의 범위를 반복하게 제작. 2. 소수의 조건인 1과 자기 자신을 제외하고 약수는 없다는 점을 이용. 3. 구한 값을 리스트로 따로 모아 파이썬 내장 함수인 sum을 이용해 합을 구함. 4. 최솟값은 처음으로 입력된 리스트 값이므로 단순하게 0번을 호출함. [소스 코드] import sys M = int(sys.stdin.readline()) N = int(sys.stdin.readline()) dem..

바보인간
'PYTHON' 태그의 글 목록