스택이란? 스택은 데이터를 임시 저장할 때 사용하는 자료구조로, 데이터의 입력과 출력 순서는 후입선출(FILO)방식이다. 데이터를 제한적으로 접근할 수 있는 구조이고, 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조이다. 스택은 큐와 함께 자바에서 사용되는 가장 기본적인 자료구조 중 하나이다. (큐의 경우 먼저 추가된 데이터가 먼저 나오는 FIFO 방식) 스택은 콜 스택(call stack)이라 하여 컴퓨터 프로그램의 서브루틴에 대한 정보를 저장하는 자료구조에도 널리 활용된다. 컴파일러가 출력하는 에러도 스택처럼 맨 마지막 에러가 가장 먼저 출력되는 순서를 보인다. 또한 스택은 메모리 영역에서 LIFO 형태로 할당하고 접근하는 구조인 아키텍처 레벨의 하드웨어 스택의 이름으로도 널리 사용된다. 이외에도 꽉 ..
https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 📚 문제 정수 N이 주어졌을 때, 아래의 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 1. X가 3으로 나누어 떨어지면, 3으로 나눈다. 2. X가 2로 나누어 떨어지면, 2로 나눈다. 3. 1을 뺀다. 예제 입력 예제 출력 2 1 10 3 📝 문제 해결 무조건 큰 수로 답을 나눈다고 답이 아니었다. 예를 들어 10 (/2) > 5(-1) > 4(/2) > 2(-1) = 1 : 4번 10(-1) > 9(/3) > 3(/3) = 1 : 3번 각 부분에서 최솟값을..
https://www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109) www.acmicpc.net 📚 문제 Si에 시작해서 Ti에 끝나는 N개의 수업이 주어지는데, 최소의 강의실을 사용해서 모든 수업을 가능하게 해야 한다. 📝 문제 해결 1) 입력받은 강의 시간을 오름차순으로 정렬해준다. 시작시간이 같을 경우 종료시간을 기준으로 오름차순 정렬 2-1) 우선순위 큐에 시작시간이 가장 빠른 강의의 종료시간(배열의 첫번째 end값)을 저장한 뒤 2-2) 현재 탐색하는 강의의 시작시간이 큐에 담겨져있는 강의들 중 가장 빠른 종료시간보다 크거나 같은..
https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 📚 문제 총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다. i번 시험장에 있는 응시자의 수는 Ai명이다. 감독관은 총감독관과 부감독관으로 두 종류가 있다. 총감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 B명이고, 부감독관은 한 시험장에서 감시할 수 있는 응시자 수가 C명이다. 각각의 시험장에 총감독관은 오직 1명망 있어..