[알고리즘] DFS, BFS | 2667 단지번호 붙이기, 2606 바이러스
단지번호 붙이기 답: 더보기 BFS 풀이 from sys import stdin from collections import deque input = stdin.readline N = int(input()) graph = [] for _ in range(N): line = list(map(int, input().strip())) graph.append(line) # {위, 아래, 오른쪽, 왼쪽} 상하좌우 dx = [0, 0, 1, -1] #(0, 1) (0, -1) (1, 0) (-1, 0) dy = [1, -1, 0, 0] def bfs(graph, x, y): queue = deque() # 무엇으로 시작해야하나? x랑 y를 제공해주기 queue.append((x, y)) # 탐색 중 1인 부분은 0으..
2023. 10. 14.
[알고리즘] 스택,큐 | 프로그래머스 : 같은 숫자는 싫어, 기능 개발
같은 숫자는 싫어 답: 더보기 def solution(arr): stack = [] for a in arr: if not stack or stack[-1] != a: stack.append(a) # elif stack[-1] == a: # 없어도 됨 # continue return stack 문제 분석 및 해석 배열 arr에서 연속적으로 나타나는 숫자를 하나만 남기고 return 하기 입력 [1,1,3,3,0,1,1] 출력 [1,3,0,1] >> 풀이생각 스택에 겹치지 않는 요소를 담아 바로 스택을 return해주기! 리뷰. 처음에는 스택에 겹치지 않도록 담은 요소들을 다음 것과 비교하여 다르면 다시 answer에 담아 return해 주어야겠다고 생각했다. 풀이하며 stack에 대한 식을 적다가 answ..
2023. 10. 7.