https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 1. 접근 방식 문제에서 최소 힙이라고 이야기하고 있으므로, heapq 모듈을 사용하였다. 2. 정답 코드 from heapq import heappush, heappop import sys input = sys.stdin.readline heap = [] count = int(input()) for _ in range(count) : n = int(input()) if not..
https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 1. 접근 방식 문제 자체가 최대 힙을 이야기하고 있다. heapq로 최대 힙을 구현하는 방법은 2가지가 있는데, 내가 작성한 방법이 속도가 더 빠르다. # 1 heappush(heap, (-n, n)) heappop(heap)[1] # 2 heappush(heap, -n) -heappop(heap) 처음에는 최대 힙을 만들기 위해 1번처럼 코드를 작성했더니, 실행 시간이 ..
https://www.acmicpc.net/problem/10994 10994번: 별 찍기 - 19 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. www.acmicpc.net 1. 접근 방식 가장 바깥쪽 그림을 그리는 함수를 만들자. 이 문제에서 별의 패턴은 사각형이 n번 그려진다는 것이다. 사각형 각 변의 길이는 length = 1 + (4 * (n - 1) )이다. 따라서 먼저 빈 도화지 역할로, 행과 열이 length 크기인 빈 리스트 table를 생성한다. 처음 별표(*)를 그리기 시작하는 위치(x, y)는 (0, 0)이고, 사각형의 길이는 length이다. 그림 그리는 논리는 이러하다. ① 사각형 위쪽과 아래쪽은 모두 *를 채워넣는다. 즉, table의 첫 번째 행과 마지막 행은 모든 열을..
https://www.acmicpc.net/problem/1913 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net 1. 접근 방식 빈 표에서 바깥쪽부터 숫자를 채워나가자. 목표는 위 그림의 왼쪽 초기 표 상태에서 오른쪽 표 상태로 만드는 것이다. 이를 위해서 왼쪽, 아래쪽, 오른쪽, 위쪽으로 4번에 나눠 값을 채워 넣는다. 처음에는 (0, 0)에 n² = 25를 넣는 것으로, 왼쪽부터 값을 채워 넣는다. 이때 열 j는 0으로 고정되어 있고, 행 i만 0에서 (n - 1) = 4까지 증가한다. 아래쪽은 행 i가 ..