본문 바로가기

분류 전체보기

(257)
파이썬) 쉬운 최단거리 - BOJ https://www.acmicpc.net/problem/14940 import sys input = sys.stdin.readline from collections import deque N, M = map(int, input().split()) graph = [list(map(int, input().split())) for _ in range(N)] visited = [[-1] * M for _ in range(N)] dx, dy = [0,0,-1,1], [-1,1,0,0] def bfs(i,j): queue = deque() queue.append((i,j)) visited[i][j] = 0 while queue: x, y = queue.popleft() for i in range(4): nx, n..
파이썬) 한 줄로 서기 - BOJ https://www.acmicpc.net/problem/1138 n = int(input()) arr = list(map(int, input().split())) answer = [0 for _ in range(n)] for i in range(n): cnt = 0 for j in range(n): if answer[j] == 0 and cnt == arr[i]: answer[j] = i + 1 break elif answer[j] == 0: cnt += 1 print(' '.join(map(str, answer))) 우선 이것이 어떻게 동작하는지 살펴보자. 말로 설정하자면 다음과 같다. 예를들어 2 1 1 0일때, 0번째 2는 자기보다 큰 사람이 왼쪽에 2명 있다는 뜻이다. 즉 왼쪽에서 두 칸 뛰고 ..
파이썬) N번째 큰 수 - BOJ https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net import heapq n = int(input()) heap = [] # arr = [] for _ in range(n): a = list(map(int, input().split())) for num in a: # 배열 개수가 n개 미만이면 if len(heap) < n: # 넣음 heapq.heappush(heap, num) else: # 입력값이 heap의 최소값보다 크다면 if heap[0] <..
파이썬) 창고 다각형 - BOJ https://www.acmicpc.net/problem/2304 2304번: 창고 다각형 첫 줄에는 기둥의 개수를 나타내는 정수 N이 주어진다. N은 1 이상 1,000 이하이다. 그 다음 N 개의 줄에는 각 줄에 각 기둥의 왼쪽 면의 위치를 나타내는 정수 L과 높이를 나타내는 정수 H가 한 개의 www.acmicpc.net n = int(input()) arr = [0 for _ in range(1001)] mh = 0 height_idx = 0 for _ in range(n): idx, h = map(int, input().split()) arr[idx] = h if mh < h: height_idx = idx mh = h prev_h = 0 left_value = 0 for i in range(h..
파이썬) 랭킹전 대기열 -BOJ https://www.acmicpc.net/problem/20006 p, m = map(int, input().split()) arr = [] for _ in range(p): lev, name = map(str, input().split()) lev = int(lev) is_Join = False for i in range(len(arr)): if arr[i][0][0] - 10
파이선) 최소 힙 - BOJ https://www.acmicpc.net/problem/1927 1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net import heapq import sys input = sys.stdin.readline ## 시간초과 방지 N = int(input()) heap = [] for _ in range(N): x = int(input()) if x == 0: if not heap: print(0) else: print(heapq.heappop(heap)) else: heapq.heappush(..
리액트) 디스코드 클론 - 7 앞서 여태까지의 기능들을 모두 한 컴포넌트에 모았는데, 그것들을 정리해보려한다. 우선 useSocket.js 파일을 생성한다 // useSocket.js import Peer from "peerjs"; import React, { useEffect, useRef, useState } from "react"; import { io } from "socket.io-client"; import audioFrequency from "../audioFrequency"; import audioContext from "../audioContext"; var getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozG; c..
파이썬) 가희와 키워드 - BOJ https://www.acmicpc.net/problem/22233 22233번: 가희와 키워드 1번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, floyd, os가 됩니다. 2번째 글을 쓰고 난 후에, 메모장에 있는 키워드는 set, os가 됩니다. map은 1번째 글과 2번째 글에 중복으로 등장하였음을 www.acmicpc.net 이 문제는 중복방지를 위해 set 또는 딕셔너리를 사용해야 했다. 그러나 셋은 키워드의 삭제를 위해 또 다시 반복문을 돌려야했으므로 딕셔너리의 사용이 알맞아 보였다. import sys input = sys.stdin.readline n, m = map(int, input().split()) dic = {} for _ in range(m): st = input()..