본문 바로가기

분류 전체보기60

[백준] 11727번 파이썬 (2xn 타일링 2) 1. 문제와 예제 (문제링크: https://www.acmicpc.net/problem/11727) 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 2. 전체 코드 # 입력 받기 n = int(input()) # 2xn 크기의 직사각형 lst = [0, 1, 3] # 채우는 방법 수 리스트 for _ in range(998): lst.append(lst[-1] + lst[-2]*2) # 결과 출력하기 print(lst[n] % 10007) 3. 코드 해설 2x(n-1) 직사각형 우측에 2x1 직사각형을 하나 붙인다고 생각하고 가짓수가 어떻게.. 2024. 4. 1.
[백준] 11726번 파이썬 (2xn 타일링) 1. 문제와 예제 (문제링크: https://www.acmicpc.net/problem/11726) 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 2. 전체 코드 # 입력 받기 n = int(input()) # 2*n 크기의 직사각형 lst = [0, 1, 2] # 피보나치 수열 리스트(길이 1001) 생성 for _ in range(998): lst.append(lst[-1]+lst[-2]) # 결과 출력하기 print(lst[n] % 10007) 3. 코드 해설 n을 늘려가면서 가짓수를 적다보니 피보나치 수열을 따른다는 것을 .. 2024. 3. 31.
[백준] 11659번 파이썬 (구간 합 구하기 4) 1. 문제와 예제 (문제링크: https://www.acmicpc.net/problem/11659) 11659번: 구간 합 구하기 4 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j www.acmicpc.net 2. 전체 코드 import sys input = sys.stdin.readline # 입력 받기 N, M = map(int, input().split()) # 수의 개수, 합 구해야 하는 횟수 lst = list(map(int, input().split())) # 주어진 수 리스트 sum_lst = [0] # 합 리스트 cnt = 0 # 합.. 2024. 3. 31.
[백준] 9461번 파이썬 (파도반 수열) 1. 문제와 예제 (문제링크: https://www.acmicpc.net/problem/9461) 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 2. 전체 코드 import sys input = sys.stdin.readline # 입력 받기 T = int(input().rstrip()) # 테스트 케이스 수 lst = [0, 1, 1, 1, 2, 2] # P(N) 리스트 cnt = 5 # (리스트 길이) - 1 for _ in range(T): N = int(input().rstrip()) # P(N)의 N w.. 2024. 3. 29.
[백준] 9375번 파이썬 (패션왕 신해빈) 1. 문제와 예제 (문제링크: https://www.acmicpc.net/problem/9375) 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 2. 전체 코드 import sys input = sys.stdin.readline # 입력 받기 t = int(input().rstrip()) # 테스트 케이스 수 for _ in range(t): n = int(input().rstrip()) # 의상 수 dct = {}.. 2024. 3. 29.
[백준] 9095번 파이썬 (1, 2, 3 더하기) 1. 문제와 예제 (문제 링크: https://www.acmicpc.net/problem/9095) 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 2. 전체 코드 import sys input = sys.stdin.readline # 입력 받기 T = int(input().rstrip()) # 테스트 케이스 수 for _ in range(T): n = int(input().rstrip()) # 정수 dp = [0] * 11 # DP 테이블 dp[1] = 1 dp[2] = 2 dp[3] = 4 for i in range(4, 11): dp[i] = dp[i-1] + dp[i-2] + dp[i-3] # 결과 .. 2024. 3. 24.
[백준] 1003번 파이썬 (피보나치 함수) 1. 문제와 예제 (문제 링크: https://www.acmicpc.net/problem/1003) 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 2. 전체 코드 1) 피보나치 함수 원리 그대로 적용 (시간 초과 오류 발생) # 시간 초과 import sys input = sys.stdin.readline # 입력 받기 T = int(input().rstrip()) # 테스트 케이스 개수 dct = {} # 피보나치 함수 def fibonacci(n): if (n == 0): dct[0] += 1 return 0 elif (n == 1): dct[1] += 1 return 1 else: return fi.. 2024. 3. 23.
[백준] 17219번 파이썬 (비밀번호 찾기) 1. 문제와 예제 (문제 링크: https://www.acmicpc.net/problem/17219) 17219번: 비밀번호 찾기 첫째 줄에 저장된 사이트 주소의 수 N(1 ≤ N ≤ 100,000)과 비밀번호를 찾으려는 사이트 주소의 수 M(1 ≤ M ≤ 100,000)이 주어진다. 두번째 줄부터 N개의 줄에 걸쳐 각 줄에 사이트 주소와 비밀번 www.acmicpc.net 2. 전체 코드 import sys input = sys.stdin.readline # 입력 받기 N, M = map(int, input().split()) # 저장된 사이트 주소 수, 비밀번호 찾으려는 사이트 주소 수 dct = {} # {'사이트 주소': '비밀번호'} dict 생성 for _ in range(N): url, pw.. 2024. 3. 23.