
https://www.acmicpc.net/problem/15688 15688번: 수 정렬하기 5 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이며, 같은 수가 여러 번 중복될 수도 있다. www.acmicpc.net 난이도 : 실버 5 태그 : 정렬 설명 시간 누적이라는, 모든 테스트 케이스의 시간이 누적되는 문제로써, 굉장히 타이트한 시간이 주어지는 문제입니다. 시간이 매우 타이트한 만큼, 시간안에 통과하기 위해 bufferedReader와 StringBuilder를 필수로 사용해야 합니다. 소스코드 import java.io.BufferedReader; import java..

https://www.acmicpc.net/problem/11931 11931번: 수 정렬하기 4 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 난이도 : 실버 5 태그 : 정렬 설명 그동안의 수 정렬하기가 오름차순 이였다면, 이번엔 내림차순 정렬입니다. 이번엔 조금 특이하게 정렬을 해봤는데요. PrioryQueue(우선순위 큐)를 사용해 정렬을 해보았습니다. 우선순위 큐는 말 그대로 원소값에 따라 우선순위를 갖는 큐로써, 꽤 자주 사용되는 자료구조 입니다. 우선순위 큐는 원소가 삽입될때 마다 정렬이 되며, 우선순위 큐를 ..

https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 난이도 : 브론즈 1 태그 : 정렬 설명 중복되는 수가 주어지는 상황에서의 정렬입니다. 수의 개수가 1부터 10,000,000개로 매우 많습니다. 하지만 n의 범위는 1부터 10,000으로 그리 많지는 않습니다. n의 개수와 범위를 봤을 때, 이 문제에서는 카운팅 정렬(계수 정렬)을 쓰면 좋을 것 같습니다. 계수 정렬 계수 정렬은 1~n 길이의 배열을 만들어놓고, 특정 데이터가 들어올때마다 해당 인덱스의 값을 +1 ..

https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 난이도 : 실버 5 태그 : 정렬 설명 수 정렬하기 두 번째 문제입니다. 1편에서는 직접 삽입정렬을 구현해 풀이해봤다면, 이번엔 자바에서 기본적으로 제공하는 정렬 기능을 사용해 풀어보겠습니다. 소스코드 import java.io.BufferedReader import java.io.InputStreamReader import java.util.Collections fun main() {..

https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 난이도 : 브론즈 2 태그 : 구현, 정렬 설명 N개의 수를 오름차순 정렬하는 문제입니다. 정렬 알고리즘에는 정말 많은 알고리즘이 있습니다. 버블정렬, 선택정렬, 힙 정렬, 퀵 정렬, 기수 정렬, 병합 정렬 등등... 언어에서 자체적으로 제공하는 정렬 알고리즘은 보통은 굉장히 효율적이고, 많이 연구된 알고리즘을 사용하여 실제 개발에서는 정렬을 직접 구현하기 보단 언어에서 자체적으로 제공하는 메소드를 사용..

https://www.acmicpc.net/problem/2748 2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 난이도 : 브론즈 1 태그 : 수학, 다이나믹 프로그래밍 설명 피보나치 수는 재귀를 배울 때, 예시로 많이 쓰이지만, 다이나믹 프로그래밍(동적 계획법)의 예제로도 많이 쓰이죠. 이 문제 같은 경우는 재귀로는 풀 수 없으며, 다이나믹 프로그래밍(이하 dp)을 사용해 풀 수 있습니다. DP는 동적 계획법으로 번역할 수 있는데, 간단히 말하자면, 이전의 구한 값을 저..

https://www.acmicpc.net/problem/24568 24568번: Cupcake Party A regular box of cupcakes holds 8 cupcakes, while a small box holds 3 cupcakes. There are 28 students in a class and a total of at least 28 cupcakes. Your job is to determine how many cupcakes will be left over if each student gets one cupcake. www.acmicpc.net 난이도 : 브론즈 5 태그 : 수학, 사칙연산 설명 8개 짜리 박스와, 3개 짜리 박스가 있고, 최소 28개의 컵케이크 중, 28명의 학생..

https://www.acmicpc.net/problem/2747 2747번: 피보나치 수 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 난이도 : 브론즈 2 태그 : 수학, 구현 설명 점화식을 배울 때 예시로 많이 쓰이는 피보나치 수 입니다. 이전 두 수의 합이 다음 수가 된다는 점에서, n1, n2의 합을 더한 수를 저장해놓고, n1에 n2를 저장하고, n1과 n2를 저장해논 값을 n2에 저장하는 방식으로 풀 수 있습니다. 소스코드 #define _CRT_SECURE_NO_WARNINGS #inc..

https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 난이도 : 실버 1 태그 : 그래프 이론, 깊이 우선 탐색, 너비 우선 탐색, 브루트포스, 그래프 탐색 설명 비가 오는 양에 따라 잠기는 지역이 있을 수도 있고, 없을 수도 있습니다. 높이는 1이상 100 이하 이므로, 1~100 높이 모두를 대상으로 DFS 혹은 BFS를 진행해 안전구역의 최대 개수를 구하면 됩니다 DFS, BFS 중 어느 것을 사용해도 무방하나, 저는 BFS를 사용하여 풀이하였습니다...

https://www.acmicpc.net/problem/11179 11179번: 2진수 뒤집기 희연이는 스웨덴으로 이사하여 현재 학교를 다니고 있다. 1학년 교육과정은 중국에서 배웠고, 스웨덴과 중국 두 나라의 교육과정은 완전히 다르다. 희연이는 수학을 좋아한다. 하지만 지금은. www.acmicpc.net 난이도 : 브론즈 1 태그 : 수학, 구현, 문자열 설명 숫자 n을 2진수로 만들고, 2진수를 뒤집고, 2진수를 다시 10진수로 만드는 문제입니다. 조금 귀찮고 번거로운 문제로 보일 수 있지만... 자바/코틀린에서 기본적으로 제공하는 메소드를 잘 이용하면 쉽게 풀 수 있습니다. 소스코드 fun main() { print((Integer.toBinaryString(readLine()!!.toInt()..