목록문제풀이/BOJ (33)
아임'준

백준 / BOJ / Python / 파이썬 문제 링크 : https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 단계 : 정렬 알고리즘 분류 : 정렬 풀이: 수들을 모두 입력받은 후 파이썬 내장 함수인 sorted(주어진 값을 정렬하여 반환)를 이용하여 for문을 통해 하나씩 출력한다. 코드 import sys n = int(sys.stdin.readline()) ls = [] for i in range(n): ls.append(int(sy..

백준 / BOJ / Python / 파이썬 문제 링크 : https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 단계 : 재귀 알고리즘 분류 : 재귀 풀이: 재귀 하면 떠오르는 대표적인 문제 중 하나인 하노 이탑이다. 하노이 탑은 1, 2, 3번 기둥을 이용하여 1번 기둥에 있던 탑을 3번 기둥으로 원판 순서에 맞게 옮기는 문제이다. 해당 문제를 풀기 위해서는 "어떻게 하면 하노이탑을 옮길 수 있는가?"를 생각해야 한다. 하노이 탑에서 중..

백준 / BOJ / Python / 파이썬 문제 링크 : https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 단계 : 재귀 알고리즘 분류 : 분할정복, 재귀 풀이: 사각형을 9등분했을 때 가운데를 공백으로 비워두는 것이 문제의 목적이다. n*n 크기의 정사각형 리스트를 만들어 둔 후 n은 3의 거듭제곱이라 하였으니 n을 기준으로 중심을 계산해서 공백을 넣는 방식으로 풀면 된다. 재귀 형탠는 작업을 할 정사각형의 왼쪽 위 ..

백준 / BOJ / Python / 파이썬 문제 링크 : https://www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 단계 : 기본 수학 2 알고리즘 분류 : 수학, 정수론, 소수 판정, 에라토스테네스의 체 풀이: 0을 입력받기 전까지 문제에서 준 범위 내에서 (n을 입력받았을 경우 n 초과 2*n 이하) 소수 판정을 진행하면 된다. 소수판정: 2021.08.02 - [문제풀이/BOJ] - [BOJ / 파이썬] 1978번: 소수 찾기 소수 판정 범위..

백준 / BOJ / Python / 파이썬 문제 링크 : https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 단계 : 기본 수학 2 알고리즘 분류 : 수학, 정수론, 소수 판정, 에라토스테네스의 체 풀이: 2021.08.02 - [분류 전체보기] - [BOJ / 파이썬] 2581번: 소수 해당 문제와 다른 점이 거의 없다. 2581번 문제의 경우 n 이상 m 이하 범위에 있는 소수 전체의 합과 가장 작은 소수를 출력하는 문제였다면 이번 문제는 n 이상 m 이하 범위에 있는 소수를..

백준 / BOJ / Python / 파이썬 문제 링크 : https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 단계 : 기본 수학 2 알고리즘 분류 : 수학, 정수론, 소수 판정 풀이: 가장 작은 소수인 2부터 해당 수가 소수일 때를 가정해 해당 수를 끝으로 하는 range를 생성해 for문을 돌리며 (입력받은)숫자가 현재 for문의 숫자(i)로 나눌 수 있을 동안 해당 수를 출력하며 숫자를 해당 수로 나눈 결과로 바꿔준다. 해당 수가 1이 될 경우 종료. 코드 n = int(input()) for i in range(2, n + 1): while n % i == 0:..

백준 / BOJ / Python / 파이썬 문제 링크 : https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 단계 : 기본 수학 2 알고리즘 분류 : 수학, 정수론, 소수 판정 풀이: 입력된 두개의 숫자에 대하여 n 이상 m 이하 중 소수를 찾아내 첫째줄에는 소수들의 합을 두번째 줄에는 소수 중 최솟값을 출력하는 문제이다. 입력된 두개의 숫자를 기준으로 range 범위를 작성한 후(m 이하 이므로 1을 더해주자) 해당 범위 내의 모든 숫자에 대해 소수 판정을..

백준 / BOJ / Python / 파이썬 문제 링크 : https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 단계 : 기본 수학 2 알고리즘 분류 : 수학, 정수론, 소수 판정, 에라토스테네스의 체 풀이: 입력된 숫자들에 대해서 소수인지 아닌지만 판단하면 되는 문제이다. 소수는 1과 자기 자신 외에 약수가 없는 숫자 이므로 숫자 n이 소수이려면 2 ~ n-1 사이에 n을 나누어 떨어뜨릴 수 있는 숫자가 없어야 한다. 만약 나누어 떨어지는 수가 있다면 check의 값을 0으로 만들어줌을 통해 해당 숫자가 소수가 아니라..