Algorithm

Algorithm/Boj

백준 6593 파이썬 - 상범 빌딩 BFS 알고리즘

문제  위 문제는 탈출할 수 있는 최단 거리를 구하는 문제인데, 2차원 배열이 아닌 3차원 배열을 통해 BFS 탐색을 진행해야 한다.여러 개의 테스트 케이스를 받아 최단 거리를 출력해야 하므로, 무한 루프와 break 조건을 적절하게 설정해줘야 한다.코드from collections import dequeimport sysinput = sys.stdin.readline# 남북서동 상하dx = [-1, 1, 0, 0, 0, 0]dy = [0, 0, -1, 1, 0, 0]dz = [0, 0, 0, 0, -1, 1]while True: L, R, C = map(int, input().split()) if L == 0 and R == 0 and C == 0: break start = None b..

Algorithm

Leetcode Product of Array Except Self 문제 풀이 with python

List 문제위 문제의 핵심은 O(n) 시간 복잡도로 자신의 위치를 제외한 모든 항목의 값을 곱한 값을 구해야 한다.2중 반복문 사용 X처음에는 모든 값을 곱한 값을 구하고, 이를 각 위치의 원소로 나누어서 계산하려고 했다. 하지만 원소의 범위가 음수, 0, 양수 모든 값을 포함하고 있어서 해당 방식으로 처리할 수 없었다. (정수를 0으로 나눌 수 없기 때문이다.) 그래서 해당 문제를 각 항목의 위치를 기준으로 왼쪽의 있는 값을 모든 곱한 값과 오른쪽의 있는 값을 모든 곱합 값을 곱하여 (본인 위치에 있는 값을 제외한 값) 원하는 값을 O(n) 시간 복잡도로 해결할 수 있었다.output = [1 for _ in range(len(nums))]left, right = 1, 1output 리스트는 모든 값..

Algorithm/Boj

[BOJ] 백준 5430 파이썬 - 바킹독 문제 풀이

문제 에러 코드 from collections import deque t = int(input()) # 테스트 케이스 개수 for i in range(t): p = input() # 수행할 함수 n = int(input()) # 배열의 개수 arr = input() # 배열 # '[', ']', ',' 특수 문자 제거 후 자료형 변환 num = deque(arr.split('[')[1].split(']')[0].split(',')) if num[0]=='': print('error') break for i in p: if i == 'R': num.reverse() elif i =='D': if len(num) == 0: print('error') break else: num.popleft() if num..

Algorithm/Boj

백준 1021 파이썬 풀이 - 바킹독 파이썬 문제 풀이

문제 0번째에 위치한 인덱스가 우리가 찾고 있는 숫자이면 삭제 및 출력한다. 우리가 찾는 인덱스가 아닌 경우 왼쪽으로 이동하거나 오른쪽으로 이동시켜 큐의 위치를 변경한다. 양쪽으로 입력과 출력이 일어나므로 덱의 자료구조인 deque를 사용하면 좋습니다. 코드 from collections import deque import sys input = sys.stdin.readline n, m = map(int, input().split()) # 큐의 크기 n 과 뽑으려는 숫자의 개수 m pos = list(map(int, input().split())) # 뽑아내려고 하는 수의 위치 q = deque(i for i in range(1, n+1)) # 큐 설정 cnt = 0 # 카운트 변수 for i in po..