본문 바로가기

> 알고리즘 문제 풀이/BOJ51

*[Python] 1904-01타일 > 출처: www.acmicpc.net/problem/1904 - 아쉬운 점: - 동적 프로그래밍의 개념을 알고 있었지만 풀지 못했다 - 문제의 핵심을 찌르는 점화식을 발견해야겠다 N = int(input()) dp = [0] * 1000001 dp[1] = 1 dp[2] = 2 for i in range(3, N+1): dp[i] = (dp[i-2] + dp[i-1]) % 15746 print(dp[N]) 2020. 10. 26.
[Python] 13300-방 배정 > 출처: www.acmicpc.net/problem/13300 * 핵심 로직: - 학년별, 성별 반이 달라야한다 -> 리스트로 구분 - 같은 학년, 같은 성별의 학생수가 K보다 클 경우 - 방을 1개 늘리고 (학생수 - K) 를 반복한다 ** 아쉬운 점: - 이 문제는 사실 while문을 굳이 돌리지 않고도, - if (학생 수 % K == 0) 이면, cnt += 학생 수 // K - else 이면, cnt += 학생 수 // K + 1 로 간단하게 해결할 수 있었다 N, K = map(int, input().split()) student = [[0, 0] for _ in range(6)] for _ in range(N): S, Y = map(int, input().split()) student[Y-.. 2020. 10. 26.
[Python] 2609-최대공약수와 최소공배수 - 이전에 정리한 내용과 문제를 참고하여 금방 풀었다 - 관련 코드: bky373.tistory.com/106?category=891584 - 유사 문제: bky373.tistory.com/166?category=884824 a, b = map(int, input().split()) t = 1 c, d = max(a, b), min(a, b) while t > 0: t = c % d c, d = d, t print(c, a*b//c) 2020. 10. 25.
*1927-최소 힙 (python, 파이썬) import heapq import sys N = int(input()) heap = [] for _ in range(N): num = int(sys.stdin.readline()) if num == 0: if heap: print(heapq.heappop(heap)) else: print(0) else: heapq.heappush(heap, num) 2020. 10. 21.