알고리즘 문제 풀이
-
[백준] 11279 최대 힙 - Java알고리즘 문제 풀이 2024. 4. 30. 15:04
문제 - 최대 힙 https://www.acmicpc.net/problem/11279 문제 설명 입력첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 가장 큰 값을 출력하고 그 값을 배열에서 제거하는 경우이다. 입력되는 자연수는 2^31보다 작다. 출력입력에서 0이 주어진 횟수만큼 답을 출력한다. 만약 배열이 비어 있는 경우인데 가장 큰 값을 출력하라고 한 경우에는 0을 출력하면 된다. 예제 입력130120032100000 예제 출력02132100접근 방법- 일단 문제를 보면 배열에 자연수를 넣고 배열에서 가장 큰 값을..
-
[프로그래머스] 구명보트 - Java알고리즘 문제 풀이 2024. 4. 29. 16:40
문제 - 구명 보트https://school.programmers.co.kr/learn/courses/30/lessons/42885 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 설명 제한 사항 입출력 예peoplelimitreturn[70, 50, 80, 50]1003[70, 80, 50]1003 접근 방법 - 문제에 구명보트를 최대한 적게 사용하여 모든 사람을 구출한다 라고 봤을때 최적의 값을 구하는 알고리즘 중에서 탐욕법(그리드)을 생각 할 수 있다- 한 구명 보트 당 최대 2명 사용할 수 있다고 한다- 자료구조는 특별한거 없이 배열로 사용 하면..
-
[백준] 5430 AC - Java알고리즘 문제 풀이 2024. 4. 28. 01:25
문제 - AC https://www.acmicpc.net/problem/5430 문제 설명 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. T는 최대 100이다.각 테스트 케이스의 첫째 줄에는 수행할 함수 p가 주어진다. p의 길이는 1보다 크거나 같고, 100,000보다 작거나 같다.다음 줄에는 배열에 들어있는 수의 개수 n이 주어진다. (0 ≤ n ≤ 100,000)다음 줄에는 [x1,...,xn]과 같은 형태로 배열에 들어있는 정수가 주어진다. (1 ≤ xi ≤ 100)전체 테스트 케이스에 주어지는 p의 길이의 합과 n의 합은 70만을 넘지 않는다. 출력 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한..
-
[백준] 1158 요세푸스 문제 - Java알고리즘 문제 풀이 2024. 4. 27. 02:48
문제 - 요세푸스 문제https://www.acmicpc.net/problem/1158 문제 설명 입력첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) 출력예제와 같이 요세푸스 순열을 출력한다. 예제 입력7 3 예제 출력 접근 방법 - 문제를 보면 숫자를 차례대로 탐색하고 K 번째 숫자를 제거하고 그런식으로 처리를 한다 - 여기에서 생각 해볼 자료구조가 링크드리스트나 큐를 생각했다- 큐를 생각한 이유는 차례대로 탐색을 하면서 K번째 이전의 값들은 다시 빼고 다시 넣는 형태가 맞는 것 같아서 생각을 했다 그리고 숫자를 차례대로 탐색하는 형식이라 선입선출 형식과 맞는 것 같다 코드 작성import java.io.BufferedReader;import ja..
-
[백준] 10845 큐 -Java알고리즘 문제 풀이 2024. 4. 25. 15:39
문제 - 큐https://www.acmicpc.net/problem/10845 10845번: 큐첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지www.acmicpc.net 문제 설명 입력 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 않은 명령이 주어지는 경우는 없다. 출력출력해야하는 명령이 주어질 때마다, 한 줄에 하나씩 출력한다. 예제 입력15push 1push 2fron..
-
[백준] 1966 프린터 큐 - Java알고리즘 문제 풀이 2024. 4. 25. 01:16
문제 - 프린터 큐https://www.acmicpc.net/problem/1966 1966번: 프린터 큐여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에www.acmicpc.net 문제 설명 입력첫 줄에 테스트케이스의 수가 주어진다. 각 테스트케이스는 두 줄로 이루어져 있다.테스트케이스의 첫 번째 줄에는 문서의 개수 N(1 ≤ N ≤ 100)과, 몇 번째로 인쇄되었는지 궁금한 문서가 현재 Queue에서 몇 번째에 놓여 있는지를 나타내는 정수 M(0 ≤ M 출력각 테스트 케이스에 대해 문서가 몇 번째로 인쇄되는지 출력한다. 예제 입력31 054 21 2 3 46..
-
[백준] 2161 카드1 - Java알고리즘 문제 풀이 2024. 4. 24. 01:25
문제 - 카드1 https://www.acmicpc.net/problem/2161 2161번: 카드1 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 문제 설명 입력 첫째 줄에 정수 N(1 ≤ N ≤ 1,000)이 주어진다. 출력 첫째 줄에 버리는 카드들을 순서대로 출력한다. 제일 마지막에는 남게 되는 카드의 번호를 출력한다. 예제 입력 7 예제 출력 1 3 5 7 4 2 6 접근 방법 - 문제를 보면 1번 부터 N 까지의 카드를 차례대로 한장을 버리고 그 다음 한장을 다시 아래에 넣는다 이런식으로 반복을 하는데 괜찮은 자료구조..
-
[백준] 2470 두 용액 - Java알고리즘 문제 풀이 2024. 4. 22. 16:53
문제 - 두 용액 https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 문제 설명 입력 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,000,000 이하이다. N개의 용액들의 특성값은 모두 다르고, 산성 용액만으로나 알칼리성 용액만으로 입력..