Problem Solving (26) 썸네일형 리스트형 [BOJ/백준] 5430번 AC | 덱 | 파이썬 문제 풀이 import sys from collections import deque T = int(sys.stdin.readline()) for _ in range(T): func = list(sys.stdin.readline().rstrip()) n = int(sys.stdin.readline()) queue = deque(sys.stdin.readline().rstrip()[1:-1].split(",")) if n == 0: queue = deque() error = False cnt_R = 0 for i in range(len(func)): if func[i] == 'D': if queue: if cnt_R % 2 == 1: queue.pop() else: queue.popleft() else: e.. [BOJ/백준] 1874번 스택 수열 | 파이썬 문제 풀이 import sys n = int(input()) target = [int(sys.stdin.readline().strip()) for _ in range(n)] stack = [] res = [] for i in range(1, n+1): stack.append(i) res.append('+') while stack and target: if stack[-1] == target[0]: stack.pop() res.append('-') del target[0] else: break if target: print('NO') else: for i in range(len(res)): print(res[i]) 1부터 n까지의 수로 입력된 수열을 만드는 문제. sys.stdin.readline().st.. [BOJ/백준] 10828번 스택 | 파이썬 (🌠sys.stdin.readline으로 시간 초과 해결) 문제 풀이 import sys n = int(sys.stdin.readline()) stack = [] for i in range(n): cmd = sys.stdin.readline().strip() if 'push' in cmd: stack.append(cmd[5:]) elif cmd == 'pop': if len(stack) == 0: print(-1) else: print(stack.pop()) elif cmd == 'size': print(len(stack)) elif cmd == 'empty': if len(stack) == 0: print(1) else: print(0) elif cmd == 'top': if len(stack) == 0: print(-1) else: print(stack[-1.. [BOJ/백준] 1697번 숨바꼭질 | BFS | 파이썬 문제 풀이 from collections import deque def bfs(start, end): queue = deque() queue.append(start) while queue: x = queue.popleft() if x == end: return visited[x] for nx in (x-1, x+1, x*2): if 0 [BOJ/백준] 7576번 토마토 | BFS | 파이썬 문제 풀이 from collections import deque def bfs(queue, box): global days dx, dy = [-1, 1, 0, 0], [0, 0, 1, -1] while queue: x, y = queue.popleft() for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0 깊이 우선 탐색(DFS)과 너비 우선 탐색(BFS) +백준 1260 문제풀이🙋♂️ DFS와 BFS는 대표적인 그래프 탐색 알고리즘이다. *그래프(graph): 노드(N, node)와 그 노드를 연결하는 간선(E, edge)을 하나로 모아놓은 자료구조 *탐색(search): 많은 양의 데이터 중 원하는 데이터를 찾는 과정 DFS (Depth-First Search, 깊이 우선 탐색) 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 재귀 함수 또는 스택 자료구조를 사용하여 구현 동작 과정 1. 탐색 시작 노드를 *스택에 삽입하고 방문 처리 2. 스택의 최상단 노드에 방문하지 않은 인접 노드가 하나라도 있으면 그 노드를 스택에 넣고 방문처리 3. 방문하지 않은 인접 노드가 없으면 스택에처 최상단 노드 꺼내기 4. 더 이상 수행할 수 없을 때 까지 2와 3을 반복 *스택(stack): 값.. [프로그래머스] Level 1 키패드 누르기 | 파이썬 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4.. [프로그래머스] Level 2 시저 암호 | 파이썬 문제 설명 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 "AB"는 1만큼 밀면 "BC"가 되고, 3만큼 밀면 "DE"가 됩니다. "z"는 1만큼 밀면 "a"가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 제한 조건 공백은 아무리 밀어도 공백입니다. s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다. s의 길이는 8000 이하입니다. n은 1 이상, 25 이하인 자연수입니다. 문제 풀이 def solution(s, n): s = list(s) l = [] for i in s: if i >= 'A' and i = 'a' and i 이전 1 2 3 4 다음