본문 바로가기
728x90
반응형

백준205

[백준] 10870번 : 피보나치 수 5 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10870번: 피보나치 수 5 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 1. 문제 설명 2. 풀이과정 출력하는 피보나치 수가 20이 최대이므로 20번째까지 피보나치 수를 만들어 리스트에 저장해 두고 입력을 받으면 만들어둔 리스트에서 해당 값을 출력해 주는 방식으로 구현한다. sys.stdin.readline() 함수로 입력받기 위해 sys 모듈을 불러온다. import sys 피보나치 수를 만들어줄 함수를 구현한다. def Func(num1, num2, count) 만약 20번째 피보나치 수를 .. 2023. 7. 7.
[백준] 10817번 : 세 수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 10817번: 세 수 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100) www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수로 입력받기 위해 sys 모듈을 불러온다. import sys 세 정수를 리스트로 입력받아 저장한다. li = list(map(int, sys.stdin.readline().split())) 입력받은 세 정수를 정렬한다. li.sort() 정렬한 수에서 두 번째로 큰 수인 가운데 수를 출력한다. print(li[1]) 3. 소스코드 import sys li = list(map(int, sys.stdin.readline().split())) li.sort() print(li[1]) 2023. 7. 7.
[백준] 2869번 : 달팽이는 올라가고 싶다 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 1. 문제 설명 2. 풀이과정 달팽이가 올라갈 수 있는 높이, 미끄러지는 높이, 나무 막대의 높이를 입력받는다. A, B, M = map(int, input().split()) 달팽이가 하루동안 올라가는 총 높이를 구한다. oneDay = A - B 정상에 올라가면 미끄러지지 않으므로 마지막날 정상에 올라가는 높이를 빼준다. V -= A math 모듈의 ceil() 메서드를 사용하여 마지막날을 제외하고 며칠을 올라가야 하는지 구하여 마지막날을 포함한 결과를 출력한다. print(math.ceil(V / oneDay) +.. 2023. 7. 7.
[백준] 1260번 : DFS와 BFS - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 1. 문제 설명 2. 풀이과정 리스트를 만들어 각 정점의 값을 [False]로 설정한 뒤, 탐색한 정점을 True로 바꾸면서 모든 정점의 값이 True가 될 때까지 탐색한다. DFS는 재귀 알고리즘을 사용하여 계속적으로 정점에 이어진 정점을 탐색하고 탐색할 정점이 없다면 다음 정점으로 넘어가 탐색을 계속한다. BFS는 deque을 사용하여 정점에서 연결된 모든 정점을 탐색하고 연결된 정점 중 가장 작은 정점으로 넘어가 탐색을.. 2023. 7. 6.
[백준] 2751번 : 수 정렬하기 2 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 해당 문제는 프로그램 실행 시간이 최대한 적게 걸리도록 소스코드를 작성하는 것이 관건이다. 하여 정렬 알고리즘 중 가장 실행 시간이 적게 걸리는 병합정렬 알고리즘을 사용하여 문제를 해결하였다. 또한 자료구조 중 덱(deque)을 활용하여 병합정렬을 수행하였다. sys.stdin.readline() 함수를 사용하기 위해 sys 라이브러리를 불러온다. import sys deque이름으로 collections 라이브러리를 불.. 2023. 7. 4.
[백준] 1712번 : 손익분기점 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 1. 문제 설명 2. 풀이과정 고정 비용, 가변 비용, 노트북 가격을 입력받는다. A, B, C = map(int, input().split()) 만약 노트북 가격이 가변 비용보다 크다면 if (C - B > 0) 손익분기점을 계산하여 값을 출력한다. print(A // (C - B) + 1) 아니면 손익분기점이 존재하지 않으므로 -1을 출력한다. else: print(-1) 3. 소스코드 A, B, C = map(int, input().split()) if (C -.. 2023. 7. 3.
[백준] 2941번 : 크로아티아 알파벳 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 1. 문제 설명 2. 풀이과정 입력받은 문자열을 하나씩 확인하며 크로아티아 알파벳을 변경하는 방법은 비효율적이고 시간이 많이 걸리며 오류가 발생하기 쉽다. 변경된 크로아티아 알파벳 결과를 미리 리스트로 만들어 저장한다. croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] 변경된 크로아티아 알파벳으로 구성된 문자열을 입력받는다. word = input() 미리 만들어둔 변.. 2023. 7. 3.
[백준] 2798번 : 블랙잭 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 1. 문제 설명 2. 풀이과정 sys.stdin.readline() 함수를 사용하기 위해 sys 라이브러리를 불러온다. import sys 카드 개수와 만들어야 하는 합을 입력받는다. N, M = map(int, sys.stdin.readline().split()) 각 카드에 쓰여있는 수를 입력받아 각각 리스트로 저장한다. li = list(map(int, sys.stdin.readline().split())) 카드 3장을 뽑아 .. 2023. 7. 3.
[백준] 1463번 : 1로 만들기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 이 문제는 이전의 결과가 다음의 결과에 영향을 주는 문제이다. 이전의 결과를 다음의 결과에 반영하여 다음 결과를 도출하는 방식으로 구현해야 한다. 저는 입력받은 숫자까지 각 자연수의 값과 연산의 최소 횟수를 딕셔너리에 저장하고 마지막에 딕셔너리에서 입력받은 숫자의 값을 출력하도록 구현하였다. sys.stdin.readline() 함수를 사용하므로 sys 모듈을 불러온다. import sys 정수를 하나 입력받는다. N = int(sys.stdin.readline()) 딕셔너리를 하나 생성하고 1, 2, 3까지는 각각 값을 대입해 주어 초기화한다... 2023. 7. 3.
[백준] 5622번 : 다이얼 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 1. 문제 설명 2. 풀이과정 알파벳 대문자로만 이루어진 문자열을 입력받는다. S = input() 최소 시간을 구하기 위한 변수를 생성하고 초기화한다. time = 0 입력받은 문자열의 문자를 하나씩 추출한다. for i in S 각 문자를 아스키코드 값으로 바꿔 C인 67까지는 3을 더한다. if (ord(i) 2023. 7. 3.
728x90
반응형