728x90 반응형 Baekjoon243 [백준] 11866번 : 요세푸스 문제 0 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 원형으로 앉은 사람을 차례대로 제거하는 문제이다. 원형으로 앉아 있으므로 해당 순서가 되기 전까지는 제일 앞사람을 제일 뒤로 옮기고, 해당 순서가 되면 해당 사람을 제거한다. 이런 방식으로 마지막까지 사람을 제거한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys deque 자료구조를 사용하기 위해 deque 모듈을 불러온다. from collections import deque 사람 수와 제거할 순서를 입력받는다. N, K = map(int, sy.. 2023. 9. 18. [백준] 1934번 : 최소공배수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 두 수의 최소공배수를 구하는 문제인데 최소공배수를 한 번에 구하려고 하다 보니 시간초과가 발생하였다. 하여 유클리드 호제법을 활용하여 두 수의 최대공약수를 구하고 최대공약수와 두 수를 최대공약수로 나눈 값을 곱하여 최소공배수를 구하도록 구현하였다. 유클리드 호제법은 두 수의 최대공약수를 쉽게 구할 때 활용하는데 두 수 중 큰 수를 작은 수로 나누고 생긴 나머지를 이용하여 나누는 수를 나머지로 나누며 .. 2023. 9. 16. [백준] 10844번 : 쉬운 계단 수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 원하는 자릿수의 계단 수의 개수를 구하는 문제이다. 마지막 숫자의 값에 따라 다음으로 올 수 있는 수가 결정된다. 처음에는 자릿수를 늘려가며 계단 수를 모두 구하는 방식으로 풀이하였다. 하지만 메모리 초과가 계속적으로 발생하였다. 하여 고정된 메모리를 사용하고 최소한의 메모리를 사용할 방법을 고안해 보았다. 0과 9는 1가지, 나머지 숫자는 2가지씩 다음 숫자가 올 수 있다. 해당 숫자가 마지막 숫자로 올 수 있는 경우의 수는 이전 결과에서 해당 숫자가 마지막으로 올 수 있는 경우의 수를 더하면 된다. 예를 들어 다음 결과에서 마지막 .. 2023. 9. 14. [백준] 11050번 : 이항 계수 1 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 11050번: 이항 계수 1 첫째 줄에 \(N\)과 \(K\)가 주어진다. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\)) www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 이항 계수 즉, 조합의 경우를 구하는 문제이다. 이항 계수의 값은 N! / K!(N - K)! 의 결과와 동일하므로 팩토리얼을 활용해 값을 구한다. 이때 결과를 정수형으로 반환하기 위해 나눗셈의 몫을 출력하도록 구현한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys N과 K를 입력받는다. N, K = map(int, sys.stdin.readline().split()) 팩토리얼을 구해줄 함수를 선언한다. def factorial(n) 만약.. 2023. 9. 12. [백준] 3009번 : 네 번째 점 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 3009번: 네 번째 점 세 점이 주어졌을 때, 축에 평행한 직사각형을 만들기 위해서 필요한 네 번째 점을 찾는 프로그램을 작성하시오. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 세 점을 입력받고 직사각형의 나머지 한 점을 찾는 문제이다. 직사각형의 모든 점을 보면 x좌표의 값이 2개, y좌표의 값이 2개로 정해지는데, 세 개의 점을 입력받아 1개의 값만 입력받아진 값이 나머지 한 점의 각 좌표 값이 되어야 한다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys x좌표를 저장할 리스트를 생성한다. xList = list() y좌표를 저장할 리스트를 생성한다. yList = list() 3번 반복하며 for _ in ran.. 2023. 9. 4. [백준] 1966번 : 프린터 큐 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 인쇄 차례를 구할 문서를 잘 쫓아가는 것이 핵심이다. 중요도가 동일한 문서가 존재할 수 있기 때문에 인쇄 차례를 구할 문서가 현재 어디에 위치하는지를 아는 것이 중요하다. 하여 처음 입력받는 인쇄 차례를 구할 문서의 위치를 계속 변경하며 해당 문서의 위치를 파악하도록 했다. 만약 제일 큰 중요도를 가진 문서를 출력할 때 그 문서가 찾고자 하는 문서라면 인쇄 순서를 출력하도록 구현했다. sys.stdin.readline() .. 2023. 9. 2. [백준] 11729번 : 하노이 탑 이동 순서 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 우선 하노이 탑의 원판 이동 순서를 알아야 한다. 원판이 1개일 경우에는 그냥 목표 장대로 옮기면 되지만 2개 이상일 때는 마지막 원판을 차례대로 목표 장대에 옮겨야 한다. 이때 마지막 원판을 제외하고 나머지 원판들은 시작 장대와 목표 장대를 제외한 나머지 한 장대에 옮겨놔야 한다. 이러한 하노이 탑의 원판 이동 순서를 파악하고 나서 문제를 해결하면 된다. sys.stdin.readline() 함수를 사용하기.. 2023. 8. 31. [백준] 2805번 : 나무 자르기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 절단기의 높이를 조절하며 잘리는 나무의 길이를 구하여 정답을 도출하는 문제이다. 절단기의 높이는 0부터 자를 나무의 최대 높이 중 하나이다.최대한 빠르게 정답을 도출하기 위해 이진 탐색을 활용하여 절단기 높이를 구하였다. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 나무의 수와 가져갈 나무의 길이를 입력받는다. N, M =.. 2023. 8. 29. [백준] 2748번 : 피보나치 수 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys 구할 피보나치 수의 번호를 입력받는다. n = int(sys.stdin.readline()) 0번째와 1번째 피보나치 수는 각 0, 1이므로 이를 담은 리스트를 생성한다. F = [0, 1] 그다음 2번째 피보나치 수부터 구하려고 하는 번호까지 반복하며 for i in range(2, n + 1.. 2023. 8. 26. [백준] 1541번 : 잃어버린 괄호 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 괄호를 어디에 쳤을 때 가장 최소가 되는 값을 얻을 수 있는지 구하는 문제이다. 값이 최소가 되려면 뺄셈 기호(-)를 기준으로 큰 값을 빼면 된다. 덧셈은 어차피 값이 커지므로 최대한 큰 값을 빼는 것을 목표로 한다. 뺄셈 기호(-)를 기준으로 식을 분리하고 분리된 식은 어차피 덧셈으로 값이 커진다. 하여 분리된 식을 각 계산한다. 계산한 결과 사이에는 모두 뺄셈이 존재하는 것이므로 뺄셈을 계산해 주면 최솟값이 나.. 2023. 8. 21. 이전 1 ··· 12 13 14 15 16 17 18 ··· 25 다음 728x90 반응형