본문 바로가기

Baekjoon175

[백준 10815번] 숫자 카드 1. 이진 탐색을 활용하여 푼 방법 (1856ms) n = int(input()) array_n = sorted(list(map(int,input().split()))) m = int(input()) array_m = list(map(int,input().split())) def binary_search(array,target,start,end): while start target: end = mid - 1 else: start = mid + 1 return 0 for i in array_m: print(binary_search(array_n,i,0,n-1),end=" ") 2. 집합(Set) 자료형을 사용하여 푼 방법 (664ms) n = int(input()) array_n = list(map(int.. 2023. 2. 23.
[백준 1920번] 수 찾기(이진 탐색) import sys input = sys.stdin.readline n = int(input()) array_n = sorted(list(map(int,input().split()))) m = int(input()) array_m = list(map(int,input().split())) def binary_search(array,target,start,end): while start target: end = mid - 1 else: start = mid + 1 return 0 for i in array_m: print(binary_search(array_n,i,0,n-1)) 이번 문제는 이전에 정렬 알고리즘에서 다루었지만, 출제자가 원하는 것은 이분 탐색 알고리즘을 사용하여 푸는 것이고 무엇보다 이진탐.. 2023. 2. 22.
[백준 1920번] 수 찾기 import sys input = sys.stdin.readline n = int(input()) # List의 in은 평균 시간복잡도가 O(N)이고, Set의 in은 평균 시간복잡도가 O(1)이다 # (Set은 해쉬 테이블을 사용하기 때문) set_n = set(map(int,input().split())) m = int(input()) array_m = list(map(int,input().split())) for i in array_m: if i in set_n: print(1) else: print(0) 이번 문제는 이진 탐색을 사용하지 않고 풀이하려고 했었는데, n개의 데이터가 들어있는 리스트(List)로 저장하고 in 연산자를 사용하니 시간초과가 발생했다. 따라서 이를 해결하기 위해 in 연산.. 2023. 2. 21.
[백준 14503번] 로봇 청소기 import sys input = sys.stdin.readline from collections import deque #방의 크기 세로(n), 가로(m) n, m = map(int,input().split()) # 칸의 좌표(r,c), 방향(d) r, c, d = map(int,input().split()) # 영역 초기화 area = [[0]*m for _ in range(n)] # 방문 여부 확인 리스트 # visited = [[False]*m for _ in range(n)] count = 0 for i in range(n): area[i] = list(map(int,input().split())) def dfs(x,y,d): global count nx = [0]*4 ny = [0]*4 if .. 2023. 2. 17.
[백준 7569번] 토마토(시즌 2) import sys input = sys.stdin.readline from collections import deque # 가로(m), 세로(n), 높이(h) m, n, h = map(int,input().split()) # 3차원 리스트 선언 및 초기화 area = [[[0]*m for _ in range(n)] for _ in range(h)] # 3차원 리스트 입력받기 for i in range(h): for j in range(n): area[i][j] = list(map(int,input().split())) # 값이 1인 인덱스(높이,세로,가로)배열 one_list = [] # 값이 0인 인덱스(높이,세로,가로)배열 zero_list = [] # 3차원 리스트에서 값이 1인 인덱스와 값이 0.. 2023. 2. 16.
[백준 2468번] 안전 영역 from collections import deque # 2차원 배열의 행과 열 개수 n = int(input()) # 지역 높이 정보(2차원 배열) area = [] visited = [[False]*n for _ in range(n)] count_list = [] solution = 0 for _ in range(n): area.append(list(map(int,input().split()))) max_value = max(map(max,area)) def bfs(x,y,value): if visited[x][y] or (area[x][y]-value) = 0 and temp_x = 0 and temp_y < n: if (area[temp_x][temp_y] - valu.. 2023. 2. 15.