반응형

Python 3

백준 1715 : 카드 정렬하기 - python (우선순위 큐, 최소힙)

문제 출처 https://www.acmicpc.net/problem/1715 정답 풀이 되게 흥미로운 문제였다. 이 문제에서 우선순위 큐를 사용한다? 생각하지 못했고, 우선순위 큐를 이용하라고 해서 고민해보니, 나온 코드다 ~  ## 1. 초기 설정 [10,20,30,40,50]이 주어졌다고 생각하자. - 아래 그림과 같이 우선순위 큐에다가 주어진 배열의 모든 값을 넣자. - answer 변수도 0값으로 할당  ## 2.  우선순위 큐에서 작은 값 두개 빼기  - 아래 그림과 같이 우선순위 큐에서 heappop()을 통해 작은 값 두개가 나오도록 한다. - heapq의 기본 설정은 최소힙이라 가장 작은 값이 나온다. - 그 후, answer에다가 10 + 20을 더한 값을 더해준다 answer = 30 ..

백준: 나머지 합 구하기 - python (구간합)

문제 출처 https://www.acmicpc.net/submit/10986 문제 풀이 힌트 -N의 최댓값이 106이라 연산량이 작게 느껴질 수 있다.그러나 각 숫자에 대해서 모든 구간합을 또 구해야 하기 때문에 1초 안에 연산은 불가능하다 ~  구간 합 배열을 이용해보자 누적 합 계산: 리스트 A의 누적 합을 계산하여 새로운 리스트 S에 저장합니다.나머지 계산: 누적 합 배열 S의 각 요소를 m으로 나눈 나머지를 계산합니다.나머지 카운트: 나머지 값이 몇 번 나오는지 카운트하는 리스트 C를 만들어 각 나머지를 카운트합니다.나머지 0 처리: 나머지가 0인 경우는 바로 답에 포함시킵니다. (변경딘 합 배열의 원소 값이 0이라는 뜻은 원본 리스트의 0부터 i 구간까지의 구간 합ㅇ이 이미 m으로 나누어 떨어진..

백준 11660 : 구간 합 구하기 - python

문제N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다.예를 들어, N = 4이고, 표가 아래와 같이 채워져 있는 경우를 살펴보자.1234234534564567여기서 (2, 2)부터 (3, 4)까지 합을 구하면 3+4+5+4+5+6 = 27이고, (4, 4)부터 (4, 4)까지 합을 구하면 7이다.표에 채워져 있는 수와 합을 구하는 연산이 주어졌을 때, 이를 처리하는 프로그램을 작성하시오.입력첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 ..

반응형