수학 56

[Python] 백준 풀기 2747 - 피보나치 수

파이썬 백준 2747번 브론즈 2 https://www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 문제 보기 분류: 수학, 구현 문제 풀기 초기값인 0 번째는 0, 1 번째는 1 을 저장한 뒤, 피보나치 수의 합의 식을 따르는 Fn = Fn-1 + Fn-2 (n ≥ 2) 를 적용하여 구하고자 하는 피보나치 수까지 계산하면 리스트에 저장하고 마지막 index 값을 출력한다. 코드 보기 import sys inputdata = sy..

공부하기/백준 2023.01.11

[Python] 백준 풀기 2455 - 지능형 기차

파이썬 백준 2455번 브론즈 3 https://www.acmicpc.net/problem/2455 2455번: 지능형 기차 최근에 개발된 지능형 기차가 1번역(출발역)부터 4번역(종착역)까지 4개의 정차역이 있는 노선에서 운행되고 있다. 이 기차에는 타거나 내리는 사람 수를 자동으로 인식할 수 있는 장치가 있다. www.acmicpc.net 문제 보기 분류: 수학, 구현, 사칙연산 문제 풀기 for loop 이 돌때마다 각 역에서 내린 사람 수, 탄 사람 수를 입력받고 총 승객의 수를 업데이트를 한다. 이 결과를 리스트에 모아 저장을 한 후 max() 함수를 이용하여 최대값이 출력 되도록 한다. 코드 보기 import sys inputdata = sys.stdin.readline if __name__ ..

공부하기/백준 2023.01.08

[Python] 백준 풀기 2720 - 세탁소 사장 동혁

파이썬 백준 2720번 브론즈 3 https://www.acmicpc.net/problem/2720 2720번: 세탁소 사장 동혁 각 테스트케이스에 대해 필요한 쿼터의 개수, 다임의 개수, 니켈의 개수, 페니의 개수를 공백으로 구분하여 출력한다. www.acmicpc.net 문제 보기 분류: 수학, 그리디 알고리즘, 사칙연산 문제 풀기 각각의 동전에 대해 몫과 나머지를 구하는 방법으로 해결한다. 주어진 입력값인 거스름돈에 대해 제일 큰 숫자인 25센트부터 몫을 구하고 그 나머지를 다음 연산 거스름돈으로 보낸다. 이 과정을 10센트, 5센트 그리고 1센트에 반복 적용하여 각각의 계산 결과 몫이 나타내는 동전의 개수를 출력한다. 코드 보기 import sys inputdata = sys.stdin.readl..

공부하기/백준 2022.12.23

[Python] 백준 풀기 2748 - 피보나치 수 2

파이썬 백준 2748번 브론즈 1 https://www.acmicpc.net/problem/2748 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 문제 보기 분류: 수학, 다이나믹 프로그래밍 문제 풀기 n 번째 피보나치 수를 저장하기 위해 n + 1 개의 빈 리스트를 준비한다. 리스트 첫번째와 두 번째 값은 0 과 1 로 초기화한다. index 가 3 인 세번째 피보나치 수는 문제에서 제시한 함수를 따르기 때문에 아래 코드와 같이 작성되었다. num_ls[i] = num_..

공부하기/백준 2022.12.19

[Python] 백준 풀기 2775 - 부녀회장이 될테야

파이썬 백준 2775번 브론즈 1 https://www.acmicpc.net/problem/2775 2775번: 부녀회장이 될테야 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다 www.acmicpc.net 문제 보기 분류: 수학, 구현, 다이나믹 프로그램 문제 풀기 1층 1호를 시작으로 해당 위치의 집의 사람 수를 구한다. 해당 위치의 인원을 구하기 위해서는 그 이전 호수의 인원과 그 이전 층의 인원이 먼저 구해져 있어야 한다. 따라서, 1층 1호, 1층 2호, ... , 2층 1호, 2층 2호, ... , ?층 ?호 순서로 찾아 나간다. 작성 코드는 해당 층 호수의 +1 개 만큼 빈 리스트를 생성한다. ..

공부하기/백준 2022.12.17

[Python] 백준 풀기 10824 - 네 수

파이썬 백준 10824번 브론즈 3 https://www.acmicpc.net/problem/10824 10824번: 네 수 첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000) www.acmicpc.net 문제 보기 분류: 수학, 구현, 문자열, 사칙연산 문제 풀기 네 개의 수를 각각 입력 받아 함수 str() 을 사용하여 문자형으로 변환을 하여 각각 붙여준 뒤, 함수 int() 를 사용하여 다시 숫자형으로 변환하여 합 계산을 한다. 코드 보기 import sys inputdata = sys.stdin.readline def fnSum(A, B, C, D): AB = str(A) + str(B) CD = str(C) + str(D) # print(AB..

공부하기/백준 2022.12.14

[Python] 백준 풀기 2527 - 직사각형

파이썬 백준 2527번 실버 1 https://www.acmicpc.net/problem/2527 2527번: 직사각형 4개의 줄로 이루어져 있다. 각 줄에는 8개의 정수가 하나의 공백을 두고 나타나는데, 첫 4개의 정수는 첫 번째 직사각형을, 나머지 4개의 정수는 두 번째 직사각형을 각각 나타낸다. 단 입력 직사 www.acmicpc.net 문제 보기 분류: 수학, 기하학, 많은 조건 분기 코드 보기 import sys inputdata = sys.stdin.readline def fnTwoRectangles(): rectangle_ls.sort() # print(rectangle_ls) # test print x1 ,y1, p1, q1 = rectangle_ls[0] x2, y2, p2, q2 = r..

공부하기/백준 2022.12.13

[Python] 백준 풀기 2217 - 로프

파이썬 백준 2217번 실버 4 https://www.acmicpc.net/problem/2217 2217번: 로프 N(1 ≤ N ≤ 100,000)개의 로프가 있다. 이 로프를 이용하여 이런 저런 물체를 들어올릴 수 있다. 각각의 로프는 그 굵기나 길이가 다르기 때문에 들 수 있는 물체의 중량이 서로 다를 수도 있다. 하 www.acmicpc.net 문제 보기 분류: 수학, 그리디 알고리즘, 정렬 문제 풀기 최대 중량을 들기 위해서는 단일 로프가 허용하는 중량이 클수록 그리고 중량을 분산할 로프가 많을수록 유리하다. 따라서 임의의 순서로 주어지는 로프의 중량 정보를 내림차순 정렬을 하고 가장 허용 중량이 작은 로프부터 하나씩 제거해 가며 최댓값을 찾는다. 내림차순 정렬된 로프 리스트에서 맨 오른쪽 데이..

공부하기/백준 2022.12.10

[Python] 백준 풀기 1789 - 수들의 합

파이썬 백준 1789번 실버 5 https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net 문제 보기 분류: 수학, 그리디 알고리즘 문제 풀기 가장 많은 N 개의 자연수를 얻기 위해서 가장 작은 1 부터 2, 3, ,,, 순서로 합을 시켜준다. 이때 S 를 넘게 되면 그 이전의 순차 자연수는 마지막 S 를 맞추기 위해 정확한 값으로 한 번 들어간다. 최대 N 을 위해 이런 식으로 진행된다는 의미이다. 코드 작성은 S 에서 1, 2, 3, ,,, 순차적으로 자연수를 빼주다가 S 가 음수가 되는 시점에 반복문을 빠져나오고 그때의 N 의 개수를 출력하는 식으로 작성하였다. 코드..

공부하기/백준 2022.12.09

[Python] 백준 풀기 1026 - 보물

파이썬 백준 1026번 실버4 https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 문제 보기 분류: 수학, 그리디 알고리즘, 정렬 문제 풀기 문제의 의도가 좀 애매한 것 같다. B를 정렬하지 말라고 했는데 정작 결과를 도출해야 하는 요소는 주어진 계산식으로 만들어질 수 있는 최솟값이다. 따라서, S = A[0] × B[0] + ... + A[N-1] × B[N-1] 에서 B 의 배열은 마음속에 고정해 두고, A 와 B 가 짝을 이룰 수 있는..

공부하기/백준 2022.12.05