본문 바로가기

알고리즘

(32)
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-1935 후위 표기식2 편 (python) 문제 살펴보기!!문제 링크 :https://www.acmicpc.net/problem/1935솔루션 살펴보기!!import sysdef input(): return sys.stdin.readline().rstrip()def postfix_evaluation(expression, values): operators = { '+': lambda b, a: a + b, '-': lambda b, a: a - b, '*': lambda b, a: a * b, '/': lambda b, a: a / b } stack = [] value_mapping = {} # 문자와 값을 매핑 value_iter = iter(v..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-2346 풍선 터뜨리기 편 (python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/2346솔루션 살펴보기!!from collections import dequedef main(): # 입력 처리 N = int(input()) queue = deque(map(int, input().split())) index_queue = deque(range(1, N + 1)) # 1부터 N까지의 숫자 큐 생성 while queue: steps = queue.popleft() # 현재 큐의 첫 번째 요소를 꺼냄 if steps > 0: queue.rotate(-(steps - 1)) # 양수일 때 회전 print(ind..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-10866 덱(Deque) 편 (python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/10866솔루션 살펴보기!!import sysfrom collections import dequedef input(): return sys.stdin.readline().rstrip()def process_commands(): queue = deque() N = int(input()) commands = { 'push_front': lambda x: queue.appendleft(x), 'push_back': lambda x: queue.append(x), 'pop_front': lambda: print(queue.popleft() if queue else -..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-2164 카드2 편 (python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/2164솔루션 살펴보기!!from collections import dequeN = int(input())queue = deque(range(1, N + 1))while len(queue) > 1: queue.popleft() # 첫 번째 요소를 버림 queue.append(queue.popleft()) # 두 번째 요소를 맨 뒤로 이동print(queue[0])상세 코드 설명!!이 코드는 주어진 숫자 N에 대해 1부터 N까지의 숫자를 순서대로 큐에 넣고, 특정 규칙에 따라 숫자를 제거하며 마지막 남은 숫자를 출력하는 알고리즘을 구현한 것입니다. 이 코드는 조세푸스 문제(Josephus Problem)와..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-1158 요세푸스 편 (python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/1158솔루션 살펴보기!!from collections import dequedef josephus_problem(N, K): queue = deque(range(1, N + 1)) result = [] while queue: queue.rotate(-K) result.append(queue.pop()) return resultdef main(): N, K = map(int, input().split()) result = josephus_problem(N, K) print('')if __name__ == "__main__": main()상세 코드 설명..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-9012 괄호 편 (python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/9012솔루션 살펴보기!!N = int(input())results = []for _ in range(N): testcase = input() cnt = 0 is_valid = True for c in testcase: if c == '(': cnt += 1 else: cnt -= 1 if cnt 이 코드는 주어진 괄호 문자열이 올바르게 닫히는지 확인하는 문제를 해결하는 프로그램입니다. 이 문제는 괄호의 쌍이 맞는지 검사하는 문제로, 주로 스택(Stack)이나 카운터(Counter) 기법을 사용하여 해결할 수 있습니다.코..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-10828 스택 편 (python) 문제 살펴보기!!문제 링크 : https://www.acmicpc.net/problem/10828솔루션 살펴보기!!import sysdef input(): return sys.stdin.readline().rstrip()N = int(input()) # Number of commandsstack = []for _ in range(N): command = input().split() if command[0] == "push": stack.append(command[1]) elif command[0] == "pop": if stack: print(stack.pop()) else: print(-1) ..
백준 알고리즘 문제 풀이 가이드: 코딩 면접 대비 완벽 준비-18258 큐 2 편 (python) 문제 살펴보기!문제 링크 : https://www.acmicpc.net/problem/18258솔루션 살펴보기!!import sysfrom collections import dequedef input(): return sys.stdin.readline().rstrip()queue = deque()commands = { 'push': lambda x: queue.append(x), 'pop': lambda: print(queue.popleft() if queue else -1), 'size': lambda: print(len(queue)), 'empty': lambda: print(0 if queue else 1), 'front': lambda: print(queue[0] ..