본문 바로가기

Algorithm706

[정렬/탐색] 백준 1654 랜선 자르기 - Python [ Contents ] 1. 문제 (링크 참조) 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 2. 문제 풀이 K개의 랜선을 잘라서, 동일한 길이의 N개 랜선을 만드는 문제입니다. 이 때, N개 랜선의 최대 길이를 구해야 합니다. 2022.02.09 - [Algorithm] - [Algorithm] 이진탐색(Binary Search), 반반 나누어서 찾자 [Algorithm] 이진탐색(Binary Search), 반반 나누어서 찾자 [ Contents ] 1. 이진탐색 (Bina.. 2022. 2. 10.
[자료구조/큐] 백준 1966 프린터 큐 - Python [ Contents ] 1. 문제 (링크 참조) 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net 2. 문제 풀이 N개의 문서 중 M번째 문서가 출력되는 순서를 구합니다. 프린터 큐는 선입선출 방식으로 먼저 출력한 문서가 먼저 나옵니다. 하지만 이 문제에서는 문서마다 중요도가 있으며, 중요도가 제일 높은 문서만 출력됩니다. 중요도가 낮은 문서는 맨 뒤로 출력이 미뤄집니다. 2022.02.10 - [Algorithm] - [Algorithm] 큐(Queue), 선입선출 줄서기 자료구조 [Algorithm] 큐(Que.. 2022. 2. 10.
[자료구조/스택] 백준 1874 스택 수열 - Python [ Contents ] 1. 문제 (링크 참조) 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 2. 문제 풀이 스택을 이용한 수열이 가능한지 검증하는 문제입니다. 스택에는 1부터 N까지의 숫자가 입력되며, push와 pop 연산으로 제시된 수열을 만들어야 합니다. 2022.02.10 - [Algorithm] - [Algorithm] 스택(stack), 차곡차곡 쌓는 자료구조 [Algorithm] 스택(stack), 차곡차곡 쌓.. 2022. 2. 10.
[구현/수학] 백준 11866 요세푸스 문제 0 - Python [ Contents ] 1. 문제 (링크 참조) 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 2. 문제 풀이 요세푸스 순열은 N개로 이루어진 원에서 K마다 제거되는 숫자를 모아둔 걸 뜻합니다. 주어지는 N과 K에 따라 형성되는 요세푸스 순열을 출력해야 하는 문제입니다. 2022.02.10 - [Algorithm] - [Algorithm] 큐(Queue), 선입선출 줄서기 자료구조 [Algorithm] 큐(Queue), 선입선출 줄서기 자료구조 [ Contents ] 1. 큐(Queue) 큐(Queue): 선입선출(First-in-First-out), 가장 먼저 들어간 자료부터 꺼내는 자료구조.. 2022. 2. 10.
[자료구조/스택] 백준 4949 균형잡힌 세상 - Python [ Contents ] 1. 문제 (링크 참조) 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 2. 문제 풀이 소괄호와 대괄호가 잘 닫혀있는지 판정하는 문제입니다. [ (( )) ] => O ( [ ( ) ] ) => O ( [ ) ] => X 괄호가 서로 겹쳐지는 건 괜찮지만, 엇갈리면 안됩니다. 이 경우를 유의해야 합니다. 2022.02.10 - [Algorithm] - [Algorithm] 스택(stack), 차곡차곡 쌓는 자료구조 [Algorithm] 스택(stack), 차곡차곡 쌓는 .. 2022. 2. 10.
[Algorithm] 큐(Queue), 선입선출 줄서기 자료구조 [ Contents ] 1. 큐(Queue) 큐(Queue): 선입선출(First-in-First-out), 가장 먼저 들어간 자료부터 꺼내는 자료구조 큐는 '줄 서는 것'과 비슷합니다. 먼저 들어가서 기다린 자료부터 차례차례 꺼냅니다. 앞에서부터 꺼내며, 추가된 자료는 뒤에서부터 줄을 세웁니다. 자료의 중간이나 뒤부터 꺼낼 수 없으며, 앞에서부터 차례차례 꺼내야 합니다. 2. 큐 함수 .push(a) 맨 뒤에 a 자료 추가 (enqueue) .pop() 맨 앞의 자료 꺼내고 삭제 (dequeue) .front() 맨 앞의 자료 반환 .rear() 맨 뒤의 자료 반환 .isEmpty() 비어있으면 1, 아니면 0 반환 맨 앞의 자료만 삭제할 수 있고, 맨 뒤에 자료를 추가할 수 있습니다. 맨 앞과 뒤의 .. 2022. 2. 10.
[Algorithm] 스택(stack), 차곡차곡 쌓는 자료구조 [ Contents ] 1. 스택(Stack) 스택(Stack): 후입선출(Last-in-First-out). 가장 최근에 들어간 자료부터 꺼내는 자료구조 스택은 말 그대로 쌓는(stack) 자료 구조입니다. 아래서부터 차곡차곡 쌓은 다음, 위에서 하나씩 뺍니다. 밑에 있는 걸 억지로 뺄려고 하면 무너지겠죠.. 가장 마지막에 들어간 자료부터 꺼내며, 억지로 앞에 있는 자료를 꺼낼 수 없습니다. 2. 스택 함수 .push(a) a 추가 .pop() 가장 최근 자료를 삭제하고 반환 .peek() 가장 최근 자료를 반환 (삭제 X) .empty() 스택이 비어있으면 1, 아니면 0 반환 스택 함수는 가장 마지막에 넣은 자료만 조작할 수 있습니다. 3. 스택 구현 class Stack: # top은 가장 최근 .. 2022. 2. 10.
[정렬/탐색] 백준 10816 숫자 카드 2 - Python [ Contents ] 1. 문제 (링크 참조) 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 2. 문제 풀이 숫자카드 N개 중에 정수 M개를 찾는 문제입니다. 2022.02.10 - [Algorithm] - [정렬/탐색] 백준 1920 수 찾기 - Python [정렬/탐색] 백준 1920 수 찾기 - Python [ Contents ] 1. 문제 (링크 참조) 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[.. 2022. 2. 10.
[정렬/탐색] 백준 1920 수 찾기 - Python [ Contents ] 1. 문제 (링크 참조) 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 2. 문제 풀이 N개의 숫자들 중에 M개의 숫자가 있는지 탐색하는 문제입니다. 2022.02.09 - [Algorithm] - [Algorithm] 이진탐색(Binary Search), 반반 나누어서 찾자 [Algorithm] 이진탐색(Binary Search), 반반 나누어서 찾자 [ Contents ] 1. 이진탐색 (Binary Search, 이분탐색) 이진탐색.. 2022. 2. 10.