본문 바로가기

코딩테스트 준비/코딩테스트 준비3

[BFS / DFS] 백준 2178번: 미로 탐색 (BOJ 2178) 풀이 import sys from collections import deque input = sys.stdin.readline n, m = map(int, input().split()) board = [] for _ in range(n): row = list(map(int, list(input().split()[0]))) board.append(row) def solution(n, m, board): visited = [[-1]*m for _ in range(n)] dx = [-1, 0, 1, 0] dy = [0, 1, 0, -1] q = deque() q.append((0, 0)) visited[0][0] += 1 while q: x, y = q.popleft() for dir in range(4): nx .. 2022. 2. 3.
[BFS / DFS] 백준 1926번: 그림 (BOJ 1926) 풀이 import sys from collections import deque # 입력 받기 input = sys.stdin.readline n, m = map(int, input().split()) board = [] for _ in range(n): board.append(list(map(int, input().split()))) visited = [[0]*m for _ in range(n)] # 방문체크 보드 count = 0 # 그림 갯수 dx = [-1, 0, 1, 0] # dx, dy => 북, 동, 남, 서 dy = [0, 1, 0, -1] area = 0 # n, m = 1, 1 board = [0]인 경우 고려해서, 미리 0 넣어두어야 함 for i in range(n): for j in ra.. 2022. 2. 2.
이것이 취업을 위한 코딩테스트다 7회차 - 이진 탐색 이진 탐색 정렬된 배열에서 탐색 범위를 반씩 줄여가면서 탐색하는 방법 순차 탐색 배열에서 데이터를 앞에서부터 순서대로 탐색하는 방법 # 실전 문제 2. 부품 찾기 N = int(input()) arr = list(map(int, input().split())) M = int(input()) target = list(map(int, input().split())) def binary_search(target: int): st, en = 0, N-1 while st target: en = mid - 1 else: # arr[mid] == target이면 존재 return True return False # st와 en이 엇갈리게 되면, 존재하지 않음 arr.sort() for item in target: i.. 2022. 2. 1.