Algorithm 87

항해99 리부트코스 알고리즘 2주 1일차 백준 1406 에디터

https://www.acmicpc.net/problem/1406 import sysinput = sys.stdin.read# 초기 문자열과 명령어 입력 받기data = input().splitlines()initial_string = data[0]commands = data[1:]# 왼쪽 스택과 오른쪽 스택 사용left_stack = list(initial_string) # 초기 문자열을 왼쪽 스택에 넣음right_stack = []# 명령어 처리for command in commands: if command.startswith('L'): if left_stack: right_stack.append(left_stack.pop()) # 왼쪽 스택에서 오른쪽 스택으..

Algorithm/백준 2024.07.25

Heap, Hash Table

힙(heap)과 해시 테이블(hash)의 개념을 이해하고, 파이썬에서 자료구조를 구현각 자료구조의 특성을 파악하고, 실제 문제 해결에 활용자료구조를 활용한 알고리즘 문제를 해결 01. 힙 (Heap), 우선순위 큐(Priority Queue)- 힙은 완전 이진 트리의 일종으로, 우선순위 큐를 구현하기 위해 사용되는 자료구조 힙(heap)은 특정 규칙을 갖는 완전 이진 트리최대 힙: 부모 노드가 자식 노드보다 항상 크거나 같음최소 힙: 부모 노드가 자식 노드보다 항상 작거나 같음이진 트리각 노드가 최대 두 개의 자식 노드를 가지는 트리 구조완전 이진트리: 말단 노드를 제외하고 모든 노드가 2개의 자식을 갖고 있는 이진트리   힙의 특성힙은 각 노드가 하위 노드보다 큰(또는 작은) 우선순위를 가집니다.최대 ..

스택, 큐, 데크

스택(Stack) 자료구조를 이해하고 활용한다큐(Queue) 자료구조를 이해하고 활용한다데크(Deque) 자료구조를 이해하고 활용한다 1. 스택(Stack) - 입/출력이 한쪽 끝단에서 모두 발생하며, 후입선출 특징을 갖는 자료구조 후입선출(LIFO: Last In First Out) 특성을 가지는 자료구조스택의 기본 연산push: 스택의 맨 위에 새로운 요소를 추가pop: 스택의 맨 위에 있는 요소를 제거하고 반환peek: 스택의 맨 위에 있는 요소를 제거하지 않고 반환isEmpty: 스택이 비어 있는지 확인 활용 예시실행취소(Undo) 기능웹 브라우저의 뒤로가기함수 호출 스택 스택 코드 예시 Java utill.Stack 라이브러리 활용import java.util.Stack;public class ..

백준 코딩테스트 1914 하노이 탑

https://www.acmicpc.net/problem/1914 문제세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다.한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다.쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다.이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다.아래 그림은 원판이 5개인 경우의 예시이다.입력첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 100)이 주어진다.출력첫째 줄에 옮긴 횟수 K를 출력한다.N이 20 이하인 입력에 대해서는 두 번째 ..

Algorithm/백준 2024.07.23

백준 코딩테스트 2615 오목

https://www.acmicpc.net/problem/2615 문제오목은 바둑판에 검은 바둑알과 흰 바둑알을 교대로 놓아서 겨루는 게임이다. 바둑판에는 19개의 가로줄과 19개의 세로줄이 그려져 있는데 가로줄은 위에서부터 아래로 1번, 2번, ... ,19번의 번호가 붙고 세로줄은 왼쪽에서부터 오른쪽으로 1번, 2번, ... 19번의 번호가 붙는다. 위의 그림에서와 같이 같은 색의 바둑알이 연속적으로 다섯 알을 놓이면 그 색이 이기게 된다. 여기서 연속적이란 가로, 세로 또는 대각선 방향 모두를 뜻한다. 즉, 위의 그림은 검은색이 이긴 경우이다. 하지만 여섯 알 이상이 연속적으로 놓인 경우에는 이긴 것이 아니다.입력으로 바둑판의 어떤 상태가 주어졌을 때, 검은색이 이겼는지, 흰색이 이겼는지 또는 아직..

Algorithm/백준 2024.07.23

백준 코딩테스트 1244 스위치 켜고 끄기

https://www.acmicpc.net/problem/1244 문제1부터 연속적으로 번호가 붙어있는 스위치들이 있다. 스위치는 켜져 있거나 꺼져있는 상태이다. 에 스위치 8개의 상태가 표시되어 있다. ‘1’은 스위치가 켜져 있음을, ‘0’은 꺼져 있음을 나타낸다. 그리고 학생 몇 명을 뽑아서, 학생들에게 1 이상이고 스위치 개수 이하인 자연수를 하나씩 나누어주었다. 학생들은 자신의 성별과 받은 수에 따라 아래와 같은 방식으로 스위치를 조작하게 된다.남학생은 스위치 번호가 자기가 받은 수의 배수이면, 그 스위치의 상태를 바꾼다. 즉, 스위치가 켜져 있으면 끄고, 꺼져 있으면 켠다. 과 같은 상태에서 남학생이 3을 받았다면, 이 학생은 와 같이 3번, 6번 스위치의 상태를 바꾼다.여학생은 자기가 받은 수..

Algorithm/백준 2024.07.23