Algorithm4 [11727] 2xn 타일링 / 파이썬 문제 시간제한 / 메모리 제한 입/출력 알고리즘 분류 다이나믹 프로그래밍 코드 n = int(input()) d = [0, 1, 2] for i in range(3, 1001): d.append(d[i-2] + d[i-1]) print(d[n]%10007) # -------다른 풀이---------- n = int(input()) d = [0] * 1001 d[1] = 1 d[2] = 2 for i in range(3, 1001): d[i] = d[i-2] + d[i-1] print(d[n]%10007) 새로 알게 된 점 개가튼 알고리즘 왜 규칙이 내 눈에 보이지 않을까.... dp는 코드는 간단한데 규칙 생각해 내는게 어렵다. 비슷한 문제 https://www.acmicpc.net/problem/11727 2023. 5. 27. [18258] 큐 2 / 파이썬 문제 시간제한 / 메모리 제한 입/출력 예제 알고리즘 분류 풀이 리스트를 이용해서 que를 구현했다. 문제의 조건에 따라 그대로 코드를 쳤다. 아 ㅋㅋ개쉽네 제출 결과 : pop(0) 부분이 문제였다. collections 라이브러리의 deque를 사용해서 pop(0) 대신 popleft() 메서드를 사용하였다. 통과! 코드 from collections import deque import sys input = sys.stdin.readline que = deque() N = int(input()) for _ in range(N): order = input() if order[:2] == "pu": push, num = order.split() que.append(int(num)) continue eli.. 2023. 1. 28. [15650] N과 M (2) / 파이썬 문제 시간제한 / 메모리 제한 입/출력 예제 알고리즘 분류 백트래킹 풀이 일단 파이썬의 순열 라이브러리를 사용해서 nPm의 목록을 구했다. 각 항목들이 튜플로 나오는데, 이를 리스트로 바꿔 주었다. 중복된 수열을 출력하면 안되고 오름차순으로 출력해야 하기 때문에 각 수열이 오름차순으로 증가하는 형태이면 print 해주었다. 코드 import sys from itertools import permutations N, M = map(int, input().split()) numbers = [i for i in range(1, N+1)] permu = list(permutations(numbers, M)) result = [0 for _ in range(len(permu))] for i in range(len.. 2023. 1. 27. [20044] Project Teams / 파이썬 문제 시간제한 / 메모리 제한 입/출력 예제 알고리즘 분류 풀이 전체 학생 수는 무조건 짝수 학생들의 코딩 실력을 오름차순으로 정렬한다. 제일 못하는 학생과 제일 잘하는 학생의 코딩력을 더해서 새로운 배열에 저장한다. pop으로 빼주기 때문에 for문 범위는 N만큼 가장 적은 코딩력의 합 출력 코드 import sys input = sys.stdin.readline N = int(input()) students = list(map(int, input().split())) sorted_students = sorted(students) coding_power = [] for i in range(N): coding_power.append(sorted_students.pop(0) + sorted_students.. 2023. 1. 26. 이전 1 다음