BFS

Coding Test/문제 풀이

[문제 풀이] 백준 14502

해결 과정 3개 세우고 최대 개수를 찾으라길래 완전탐색 말고 다른 방법이 있나 생각해봤더니 없었음. 결국 완전탐색 및 그래프 + BFS 문제였다. 1시간 이내로 걸림. 다만, 2차원 배열의 복사를 알아야 했다. 나의 풀이 from collections import deque from copy import deepcopy from itertools import combinations def bfs(laboratory, tuple, virus): # ((0, 1), (2, 1), (2, 3)) for i in range(3): laboratory[tuple[i][0]][tuple[i][1]] = 1 queue = deque(virus) # [(0, 1), (2, 1), (2, 3)] dx = [0, 1, 0..

Coding Test/문제 풀이

[문제 풀이] 백준 7576

해결 과정 그래프 상하좌우 탐색 방법은 이전에 알고 있어서 적용 가능했다. while 문으로 다 처리했는데, 답은 잘 나오지만 시간초과가 발생했다. 문제 유형에 너비우선탐색(BFS)가 있길래, Queue를 떠올리며 시간 초과를 어떻게 없앨지 생각하다가, 이전 풀이에서는 이미 탐색한 것도 재탐색하는 비효율이 있음을 알게 됐다. 다음을 추가해서 시간초과 문제를 해결했다. ripedTomatosCount를 추가해서 전체 처리 개수 세도록 했고, while 문 내에서 for 문 돌릴 때, 이미 센 것에 대해선 처리하지 않도록 처리함. (ripedTomatos = newRipedTomatos 재할당) 나의 풀이 def solution(m, n): answer = 0 dx = [0, 1, 0, -1] dy = [-..

Coding Test/문제 풀이

[Algorithm] 타겟넘버

코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr [12월 20일] 2시간 가량 생각했는데, 잘못된 풀이 방법을 계속 고수하고 있었다. 다른 사람들의 풀이를 살펴봤다. 제대로 본 건 아니고, 아 이런 개념으로 풀 수 있구나. 오늘은 여기서 끝. [12월 21일] 새로운 마음으로 다시 풀었다. DFS, BFS 개념 다시 돌아보고 코드 다시 보면서 stack, queue 관점으로 다시 생각해봤다. 1시간이 채 안돼서 풀었다. 어쨌든 모든 것을 다 탐색해야 하니까..

EUNJI HA
'BFS' 태그의 글 목록