https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 시간 초과 때문에 어려웠다... (공부 더 열심히 하자) while 조건문을 low mid: result += h - mid if result == M or low > high: # M과 result가 같지 않은 경우도 고려 print(mid) break elif result > M: low = mid + 1 elif result < M: high = mid..
https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 문제 입력을 고려하지 않고 리스트로 구현했다가 시간초과가 났다. 파이썬의 자료구조 중 dictionary를 사용하여 구현하였다. 딕셔너리에서 키를 검색하는 방법(key in dict)의 시간 복잡도는 O(1)이지만, 리스트(elem in list)는 O(n)이기 때문에 훨씬 효율적이다. 딕셔너리와 리스트의 주요 연산 시간 복잡도 비교는 아래의 링크에서 더 자세하게 확인할 수 있다. (감사합니다)..
https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제는 아주 쉽다. 파이썬에서의 deque를 사용하면 큐 구현이 쉽기 때문이다. 입력으로 들어오는 명령에 따라 조건문을 나눠 처리해주면 된다. # 큐 import sys from collections import deque input = sys.stdin.readline N = int(input()) Q = deque() for _ in range(N): cmd = input()...
- Total
- Today
- Yesterday
- 스택
- 브루트포스
- 러스트
- 파이썬
- 1182
- 10845
- 삼성청년소프트웨어아카데미
- 1358
- 1764
- 자료구조
- 딕셔너리
- 빌림
- 백준
- 덱
- 수학
- 조합
- 2805
- 백트래킹
- 17478
- heapq
- 큐
- 10815
- 싸피
- 10971
- 1715
- dp
- 프로그래머스
- 11051
- 10816
- 1759
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |