본문 바로가기

전체 글618

[백준/자바] 2750 수 정렬하기 [백준/자바] 2750 수 정렬하기 📌 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. ⚔ 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 📣 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 💎 문제분석하기 sort() 함수를 이용하면 바로 정렬되는 문제이지만, 버블 정렬을 직접 구현하는 문제 풀이를 해본다. 방식은 간단하다. 하나 하나씩 비교하면 된다. 📜 슈도코드 작성하기 💡 코드 구현하기 import java.util.Scanner; public class Main { public stati.. 2022. 11. 6.
[백준/파이썬] 11286 절댓값 힙 구현하기 [백준/파이썬] 11286 절댓값 힙 구현하기 📌 문제 절댓값 힙은 다음과 같은 연산을 지원하는 자료구조이다. 1. 배열에 정수 x (x ≠ 0)를 넣는다. 2. 배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 절댓값이 가장 작은 값이 여러개일 때는, 가장 작은 수를 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. ⚔ 입력 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 절댓값이 가장 작은 값을 출력하고 그 값을 배열에서 제거하는 경우이다. 입력되는 정수는 -2.. 2022. 11. 6.
[백준/자바] 17298 오큰수 구하기 [백준/자바] 17298 오큰수 구하기 📌 문제 크기가 N인 수열 A = A1, A2, ..., AN이 있다. 수열의 각 원소 Ai에 대해서 오큰수 NGE(i)를 구하려고 한다. Ai의 오큰수는 오른쪽에 있으면서 Ai보다 큰 수 중에서 가장 왼쪽에 있는 수를 의미한다. 그러한 수가 없는 경우에 오큰수는 -1이다. 예를 들어, A = [3, 5, 2, 7]인 경우 NGE(1) = 5, NGE(2) = 7, NGE(3) = 7, NGE(4) = -1이다. A = [9, 5, 4, 8]인 경우에는 NGE(1) = -1, NGE(2) = 8, NGE(3) = 8, NGE(4) = -1이다. ⚔ 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, .. 2022. 11. 6.
[백준/자바] 1874 스택 수열 [백준/자바] 1874 스택 수열 📌 문제 스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다. 1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써, 하나의 수열을 만들 수 있다. 이때, 스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자. 임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지, 있다면 어떤 순서로 push와 pop 연산을 수행해야 하는지를 알아낼 수 있다. 이를 계산하는 프로그램을 작성하라. ⚔ 입력 첫 줄에 .. 2022. 11. 5.
[백준/자바] 11003 최솟값 찾기 [백준/자바] 11003 최솟값 찾기 📌 문제 N개의 수 A1, A2, ..., AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. ⚔ 입력 첫째 줄에 N과 L이 주어진다. (1 ≤ L ≤ N ≤ 5,000,000) 둘째 줄에는 N개의 수 Ai가 주어진다. (-109 ≤ Ai ≤ 109) 📣 출력 첫째 줄에 Di 를 공백으로 구분하여 순서대로 출력한다. 💎 문제분석하기 먼저 문제에 주어진 범위에 대한 해석을 해보자면 L은 슬라이딩 윈도우의 크기임을 알 수 있다. 따라서 주어지는 크기 만큼의 슬라이딩을 움직이며 최소 값을 구하는 문제이다. i가 커지면서 순차대로 최소값을 .. 2022. 11. 5.