전체 글 241

프로그래머스 k번째 수

문제 코딩테스트 연습 - K번째수 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr 해결방안 commands에 저장되어있는 각 값들을 뽑아 문자열을 나눠준 후, commands의 마지막 원소번째 숫자를 정답배열에 하나씩 붙여 리턴해주는 간단한 문제 def solution(array, commands): answer = [] for i in commands: start = i[0] last = i[1] num = i[2] answer.append(sorted(array[start - 1:last])[num-1]) return a..

[Python] 백준 2206번 "벽 부수고 이동하기" (DFS/BFS)

문제 문제 풀이 벽을 뚫은 경우와 뚫지 않은 경우를 구별하기 위해 방문여부 3차원 배열로 확인 0인 경우 벽을 아직 뚫지 않은 상태, 1인 경우 벽을 이미 뚫은 상태 벽이 없는 경우 이동 횟수를 카운트 해서 방문배열에 넣고, 벽이 있으나 부술 수 있는 경우, 벽의 값을 1로 업데이트 한 후, 이동횟수 업데이트 그 후, 큐에 이동 할 위치와 벽의 값 큐에 삽입 목표 좌표에 도달 한 경우 이동횟수 리턴 탐색을 진행 했으나, 목표 지점에 도달 불가능 한 경우 -1 리턴 코드 from collections import deque n, m = map(int,input().split()) graph = [] # 벽을 부순 상태와 부수지 않은 상태 구별하기 위해 3차원배열 visited = [[[0] * 2 for ..

Algorithm/백준 2022.04.21

[Python] 백준 1697번 숨바꼭질 (DFS/BFS)

문제 풀이 1 큐에 수빈이의 좌표와 이동하는 데 걸린 시간을 삽입하여 bfs 탐색 코드 from collections import deque subin, destination = map(int, input().split()) max_num = 100000 visited = [0] * (max_num + 1) def bfs(): queue = deque() queue.append((subin, 0)) visited[subin] = 1 while queue: x, count = queue.popleft() if x == destination: visited[x] = 1 return count else: for i in (x + 1, x - 1, x * 2): if 0

Algorithm/백준 2022.04.20

백준 7569번 토마토

문제 해결방법 입력받은 배열을 탐색하여 토마토가 있는 곳부터 탐색을 시작한후, bfs를 사용하여 큐에 새로운좌표와, 익히는 일수를 하나씩 더해주면서 탐색한다. 마친 후에는 익지 않은 토마토가 있는지 배열을 다시 한번 탐색하여 있다면 -1 그렇지 않다면 익히는데 걸린 총 일수를 출력한다. from collections import deque import sys n,m,h = map(int,sys.stdin.readline().split()) graph = [[list(map(int,sys.stdin.readline().split())) for _ in range(m)] for _ in range(h)] queue = deque() # 동서남북전후 dy = [0, 0, -1, 1, 0, 0] dx = [1,..

Algorithm/백준 2022.04.18