본문 바로가기

분류 전체보기

(258)
파이썬) ZOAC 4 - BOJ https://www.acmicpc.net/problem/23971 23971번: ZOAC 4 i행 j열 자리를 (i, j)라고 할 때, (1,1)에 참가자가 앉은 경우 다른 참가자는 (1,2), (2,1), (2,2) 자리를 제외한 나머지 자리에 앉을 수 있다. (2,2)의 경우는 (1,1)과 행 번호 및 열 번호의 차가 1보다 크 www.acmicpc.net 이 문제는 프로그래머스 "거리두기 확인하기"와 상당히 비슷하다 https://school.programmers.co.kr/learn/courses/30/lessons/81302 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. pr..
파이썬)연구소2 -BOJ from itertools import combinations from collections import deque from copy import deepcopy import sys input = sys.stdin.readline n, m = map(int, input().split()) arr = [] vi = [] for i in range(n): l = list(map(int, input().split())) arr.append(l) for j in range(len(l)): if l[j] == 2: vi.append([i, j]) result = float('inf') dx = [0, 0, -1, 1] dy = [-1, 1, 0, 0] def bfs(vir): q = deque() cnt = 0 ..
파이선) 미로만들기 - BOJ https://www.acmicpc.net/problem/2665 from collections import deque n = int(input()) arr = [] for i in range(n): arr.append(str(input())) visit = [[False for _ in range(n)] for _ in range(n)] q = deque() q.append((0, 0, 0)) visit[0][0] = True dx = [0, 0, -1, 1] dy = [1, -1, 0, 0] while q: x, y, cnt = q.popleft() if x == n-1 and y == n-1: print(cnt) break for i in range(4): nx = dx[i] + x ny = dy[..
파이썬) 뱀과 사다리 게임 - BOJ https://www.acmicpc.net/problem/16928 이 문제는 bfs처럼 보이는 구현 문제였다. 주어진 조건만 잘 살펴보면 된다. 주사위를 굴려 다음 칸으로 이동한다 만약 다음칸이, 즉 nx가 사다리라면 사다리를 타고 이동한다 nx가 뱀이라면 뱀을타고 이동한다 출발지점과 도착지점엔 뱀과 사다리가 없다 from collections import deque n, m = map(int, input().split()) ladder = [] snake = [] for _ in range(n): a, b = map(int, input().split()) ladder.append([100-a, 100-b]) for _ in range(m): a, b = map(int, input().split()) ..
파이썬) 다리 만들기 - BOJ https://www.acmicpc.net/problem/2146 import sys from collections import deque input = sys.stdin.readline dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] # 섬을 구분해주는 bfs def bfs1(i, j): global count q = deque() q.append([i, j]) vis[i][j] = True arr[i][j] = count while q: x, y = q.popleft() for k in range(4): nx = x + dx[k] ny = y + dy[k] if 0 = n: continue # 다른 땅을 만나면 기존 답과 비교하여 짧은 거리 선택 if arr[nx][ny] > 0 ..
파이썬) 암기왕 -BOJ https://www.acmicpc.net/problem/2776 from bisect import bisect_left t = int(input()) def find(): n = int(input()) arr = list(map(int, input().split())) m = int(input()) arr2 = list(map(int, input().split())) arr.sort() for i in range(len(arr2)): target = arr2[i] start = 0 end = n-1 while start arr[mid]: start = mid + 1 else: end = mid - 1 if start > end: print(0) for _ in range(t): find()
파이선) 기타 레슨- - BOJ https://www.acmicpc.net/problem/2343 2343번: 기타 레슨 강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경 www.acmicpc.net n, m = map(int, input().split()) arr = list(map(int, input().split())) result = sum(arr) start = 0 end = sum(arr) while start
파이썬) 구슬탈출 -BOJ https://www.acmicpc.net/problem/13460 13460번: 구슬 탈출 2 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net from collections import deque import sys input = sys.stdin.readline # 빠른 입출력 위한 코드 n, m = map(int, input().split()) graph = [] for i in range(n): graph.append(list(input())) for j in range(m): if..