[백준/Python] 1655 가운데를 말해요
문제링크 1655번: 가운데를 말해요 첫째 줄에는 백준이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 백준이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net 문제풀이 2022.07.04 - [공부기록/자바스크립트 코딩테스트] - [백준/Python] 2696번 중앙값 구하기 [백준/Python] 2696번 중앙값 구하기 문제링크 2696번: 중앙값 구하기 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스의 첫째 줄에는 수열의 크기 M(1 ≤ M ≤ 9999, M은 홀수)이 주어지고, 그 다음 줄부터 ehddud100677.tistory.com 어제 ..
[백준/Python] 2075번 N번째 큰수
문제링크 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 문제이해 이 문제 도대체 무슨 소리를 하는거지? 문제를 이해를 하지 못했다. 나는 바보다. 문제예시를 보면 5 x 5 의 input이 들어오는데 이 수들 중에서 5번째로 큰 수를 출력하면된다. 52 - 49 - 48 - 41 - 35 순이므로 35를 출력하면 되는 것이다. 오답 처음에 모든 값을 최대힙에 넣어서 5번째 값을 출력하는 방식을 사용했는데, 메모리초과가 났다. 메모리 초과가 나올 것을 노리고 다른방법으로 풀기 원하는 문제였다. import sys i..
[백준/11286] 11286 절대값 힙
문제링크 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 문제풀이 파이썬에서 heapq 의 디폴트는 최소힙이므로 첫번째 원소에는 절대값으로 변환한 input을 넣어주고 첫번째 원소가 같다면 두번째 원소를 기준으로 pop이 되므로 최소값을 출력하기 위해서는 그대로 input을 넣어주면 되었습니다. import sys import heapq input = sys.stdin.readline num = int(input()) heap = [] for i in range(num) : target= ..
[백준/Python] 11279 최대힙
문제링크 11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 www.acmicpc.net 문제풀이 import sys import heapq input = sys.stdin.readline num = int(input()) heap = [] for i in range(num): inputN = int(input()) if inputN == 0 : if len(heap)==0: print(0) else : print(-1*heapq.heappop(heap)) else : heapq.heappush(heap,-1*inputN)
[백준/Python] 2696번 중앙값 구하기
문제링크 2696번: 중앙값 구하기 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스의 첫째 줄에는 수열의 크기 M(1 ≤ M ≤ 9999, M은 홀수)이 주어지고, 그 다음 줄부터 이 수열의 원소가 차례대로 주 www.acmicpc.net 참고자료 http://mwultong.blogspot.com/2007/06/median.html 중앙값이란? 통계에서 중간값, 메디안의 의미; Median mwultong.blogspot.com https://sanghoon9939.tistory.com/32 Baekjoon-2696)중앙값 구하기 백준 사이트 URL : https://www.acmicpc.net/problem/2696 문제 분석 입력 : 테스트크기 T, 수열..
[백준/Python] 21939 문제 추천 시스템 Version 1
문제링크 21939번: 문제 추천 시스템 Version 1 tony9402는 최근 깃헙에 코딩테스트 대비 문제를 직접 뽑아서 "문제 번호, 난이도"로 정리해놨다. 깃헙을 이용하여 공부하시는 분들을 위해 새로운 기능을 추가해보려고 한다. 만들려고 하는 명령 www.acmicpc.net 배운점 1시간 정도 사소한 조건을 만족하지 못해 허비했다. 짜증이 난다. 그래도 배운게 많은 문제이다. 이 문제의 조건에서 recommend 1 이 입력되게 되면 가장 어려운 난이도의 문제 번호를 출력하게 되는데 나는 문제에 나와 있지도 않는데 힙의 최상위 원소를 출력하면 되는데 heappop을 시켰다. 머리를 한대 때렸다. 파이썬에서 최대힙을 구현하는 과정에서 -1 을 곱해서 넣어주게된다. 나는 처음에는 (-1 * 문제 난..
[백준/Python] 7662 우선순위 큐
문제링크 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적 www.acmicpc.net 문제풀이 참고한 블로그 https://imzzan.tistory.com/31 [백준][Python] 7662번 이중 우선순위 큐 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이 imzzan.tistory.com 우선순위 큐는 heap으로 구현이 가능합니다. 파이썬에서 내장 모듈인 heapq로 heap을 ..
백준 2580 스도쿠 파이썬
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 graph = [list(map(int,input().split())) for _ in range(9)] go = set([0,1,2,3,4,5,6,7,8,9]) def rowrow(): for i in range(9): zero_count = 0 zero_index = 0 go = set([0,1,2,3,4,5,6,7,8,9]) fo..
백준 14888번 파이썬
연산자 끼워넣기 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 512 MB 54975 28879 18236 49.416% 문제 N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다. 예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 60가지의 식을 만들 수 있다. 예를 들어, 아래와 같은 식..
백준 꽃길 14620번 파이썬
import sys input = sys.stdin.readline N = int(input()) graph = [list(map(int,input().split())) for _ in range(N)] visit = [[False]*N for _ in range(N)] dx = [-1,0,1,0] dy = [0,1,0,-1] # 한꽃에 메겨질 수 있는 코스트값이 1000이므로 3개이면 3000 global ans ans = 3000 def dfs(limit,total): # 꽃을 3개 심은경우 cost를 비교해서 더 적은 값이라면 ans에 넣는다. if limit == 3 : global ans # print(total) ans = min(ans,total) return # visit[x][y] = T..