알고리즘 14

[알고리즘과 자료구조] 스택과 큐

🔸Intro🔸오늘은 스택과 큐에 관한 기본적인 이론을 알아보려고 합니다. BFS(너비 우선 탐색)과 DFS(깊이 우선 탐색)을 공부하던 도중, '왜 DFS가 메모리 사용량이 적고 BFS는 메모리 사용량이 많을까?'라는 의문이 생겼습니다. DFS는 Stack기반 구현이고, BFS는 Queue기반 구현이기 때문에 이것에 정답이 있지 않을까 생각이 들어, Stack과 Queue에 대한 이론을 다시 한번 정리해보는 시간을 갖게 되었습니다.  자동목차스택과 큐는 자료구조 중 선형 자료구조로 연속적으로 데이터가 나열되는 형태를 가집니다. 📌스택 🔸스택의 특징  후입선출(LIFO) 구조 - 마지막에 들어간 게 먼저 나옴 하나의 입구만 사용(입구=출구)메모리 공간을 효율적으로 활용 가능 (사용한 데이터는 즉시 ..

백준 2751번 수 정렬하기2 (JAVA)

자동목차📌문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 🔹입력  첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 🔹출력  첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.🔹예제 입력 1  554321🔹예제 출력 1 12345​📌문제 🔹풀이 1  풀이 방법은 🔎백준 2750번 수 정렬하기 의 풀이 2번과 같다.import java.io.*;public class Main { public static void main(String[] args) throws IOExceptio..

백준 25305번 커트라인 (JAVA)

📌문제 2022 연세대학교 미래캠퍼스 슬기로운 코딩생활에 N명의 학생들이 응시했다.이들 중 점수가 가장 높은 k명은 상을 받을 것이다. 이 때, 상을 받는 커트라인이 몇 점인지 구하라.커트라인이란 상을 받는 사람들 중 점수가 가장 가장 낮은 사람의 점수를 말한다. 🔹입력  첫째 줄에는 응시자의 수 N과 상을 받는 사람의 수 k가 공백을 사이에 두고 주어진다.둘째 줄에는 각 학생의 점수 x가 공백을 사이에 두고 주어진다. 🔹출력 상을 받는 커트라인을 출력하라. 🔹조건  1 ≤ N ≤ 1000 1 ≤ k ≤ N 0 ≤ x ≤ 10000  🔹예제 입력 1 5 2100 76 85 93 98🔹예제 출력 1 98​📌풀이 및 해설 🔹풀이   내림차순으로 정렬후 k-1번째 인텍스의..

백준 2587번 대표값2 (JAVA)

📌문제 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + 30) / 5 = 170 / 5 = 34가 된다.평균 이외의 또 다른 대표값으로 중앙값이라는 것이 있다. 중앙값은 주어진 수를 크기 순서대로 늘어 놓았을 때 가장 중앙에 놓인 값이다. 예를 들어 10, 40, 30, 60, 30의 경우, 크기 순서대로 늘어 놓으면10 30 30 40 60이 되고 따라서 중앙값은 30이 된다.다섯 개의 자연수가 주어질 때 이들의 평균과 중앙값을 구하는 프로그램을 작성하시오. 🔹입력  첫째 줄부터 다섯 번째 줄까지 한 줄에 하나씩 자..

백준 2750번 수 정렬하기(JAVA)

📌문제   N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.입력첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.출력첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.예제 입력 1552341예제 출력 112345  📌해설&답   🔹풀이1 : 쉬운 방법 - sort 이용import java.io.*;import java.util.Arrays;public class Main { public static void main(String[] args) throws IOException { BufferedR..

백준 2839번 설탕 배달 (JAVA)

📌문제   상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다.상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다.상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000)출력상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정확하..