본문 바로가기

분류 전체보기

(252)
파이썬) 개미 - BOJ https://www.acmicpc.net/problem/3048 3048번: 개미 T초가 지난 후에 개미의 순서를 출력한다. 첫 번째 개미 그룹은 왼쪽에서 오른쪽으로 움직이고, 두 번째 그룹은 반대 방향으로 움직인다. www.acmicpc.net 이 문제는 좀 어려웠다. 우선 처음 작성한 코드를 보자 n1, n2 = map(int, input().split()) a = input() a = a[::-1] # a = '' b = input() t = int(input()) dic = {} dic2 = {} k = 0 m = min(len(b), len(a)) for i in range(len(a)): dic[a[i]] = k k += 1 for i in range(len(b)): dic2[b[i]] = ..
파이썬) 미로 만들기 -BOJ https://www.acmicpc.net/problem/1347 n = int(input()) s = input() arr = [[0, 0]] # 동 남 서 북 0,1,2,3 x, y, d = 0, 0, 1 for i in s: if i == 'R': d = (d + 1) % 4 elif i == 'L': d = (d - 1) % 4 else: if d == 0: # 동 x = x y += 1 elif d == 1: x += 1 y = y elif d == 2: x = x y -= 1 else: x -= 1 y = y arr.append([x, y]) min_x = 0 min_y = 0 max_x = 0 max_y = 0 for i in arr: x, y = i[0], i[1] min_x = min(x..
파이썬) 로봇 청소기 - BOJ https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net import sys input = sys.stdin.readline graph = [] dr = [-1, 0, 1, 0] dc = [0, 1, 0, -1] n, m = map(int, input().split()) r, c, d = map(int, input().split()) for _ in range(n): graph.append(list(ma..
파이썬) 시험 감독 -BOJ https://www.acmicpc.net/status?user_id=dlwnsgml203&problem_id=13458&from_mine=1 채점 현황 www.acmicpc.net n = int(input()) arr = list(map(int, input().split())) a, b = map(int, input().split()) cnt = 0 for i in range(n): if arr[i]
자바스크립트)디스코드 클론 - 리액트 최근 회사 일 때문에 디스코드 클론 프로젝트를 모두 다 끝내지 못했다. 그리고 그저께부터 다시 작업에 돌입했는데 문제가 발생했다. 어떤 유저가 스트림 데이터 중 비디오를 껐다고 가정해보자. 그럼 다른유저와 그 유저를 이어주는 피어의 스트림을 다시 갈아끼워야 한다. 그러나 peer.js를 사용하면 하나의 피어(겉으로 보기엔)만 생성해 모든 유저의 피어를 관리한다. 때문에 마이크 볼륨이나 오디오 볼륨 등의 세세한 작업을 하는데 시간이 너무 많이 소요되는 것이 느껴졌다. 그래서 나는 peer.js를 사용하지 않고 RTCPeerConnection이라는 WebAPI를 사용하는 아주 기본적인 peer생성부터 다시 시작하기로 마음 먹었다. 자바스크립트에서 제공하는 WebAPI를 사용하는데에는 조금 어려움이 있었다. ..
파이썬) 일곱 난쟁이 - BOJ https://www.acmicpc.net/problem/2309 2309번: 일곱 난쟁이 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. www.acmicpc.net from itertools import combinations arr = [] for _ in range(9): arr.append(int(input())) for talls in combinations(arr, 7): # 일곱 난쟁이의 키는 중복되지 않으니 조합으로 만들어준다 if sum(talls) == 100: answer = sorted(talls, key=lambda x: x) for i in a..
파이썬) 로봇 프로젝트 - BOJ https://www.acmicpc.net/problem/3649 import sys input = sys.stdin.readline while True: try: x = int(input()) * 10000000 n = int(input()) lego = [int(input()) for _ in range(n)] lego.sort() i, j = 0, n-1 flag = True while i < j: if lego[i] + lego[j] == x: print('yes %d %d' %(lego[i], lego[j])) flag = False break elif lego[i] + lego[j] < x: i += 1 else: j -= 1 if flag: print('danger') except: brea..
파이썬) 최대 힙 - BOJ https://www.acmicpc.net/problem/11279 11279번: 최대 힙 첫째 줄에 연산의 개수 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: pri..