[Java] 백준 1015 (수열 정렬) 자바 문제 풀이
·
BOJ, Programmers
https://www.acmicpc.net/problem/1015  알고리즘 분류정렬 똑같은 두개의 배열을 두고 하나는 비내림차순(오름차순) 으로 정렬할 때순서에 맞게 index 번호를 출력하는 문제이다.  우선, StringTokenizer를 사용하여 입력된 수들을 배열에 하나씩 저장하였다. StringTokenizer st = new StringTokenizer(br.readLine()); for (int i = 0; i     그 다음, 배열을 복사한 뒤 원본 배열은 Arrays.sort() 함수를 사용하여 오름차순으로 정렬해주었다 int [] arr = temp.clone(); Arrays.sort(temp);   이제 두 개의 배열을 비교하며 원래 배열의 각 요소가 정렬된 배열에서 어떤 ..
[Java] 백준 2535 (아시아 정보올림피아드) 자바 문제 풀이
·
BOJ, Programmers
https://www.acmicpc.net/problem/2535 2535번: 아시아 정보올림피아드 첫 번째 줄에는 대회참가 학생 수를 나타내는 N이 주어진다. 단, 3 ≤ N ≤ 100이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사 www.acmicpc.net 알고리즘 분류 구현 정렬 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void ma..
[Java] 백준 2075 (N번째 큰 수) 자바 문제 풀이
·
BOJ, Programmers
https://www.acmicpc.net/problem/2075 2075번: N번째 큰 수 첫째 줄에 N(1 ≤ N ≤ 1,500)이 주어진다. 다음 N개의 줄에는 각 줄마다 N개의 수가 주어진다. 표에 적힌 수는 -10억보다 크거나 같고, 10억보다 작거나 같은 정수이다. www.acmicpc.net 알고리즘 분류 자료 구조 정렬 우선순위 큐 풀이 정렬을 해서 풀어야 하는 문제이다. 하지만 메모리 제한이 12MB이므로 2차원 배열을 다 입력받고 정렬을 했다간 메모리 초과가 날 것 같아, 우선 순위 큐로 문제를 접근했다. PriorityQueue를 선언하고 람다식을 사용해 ( (o1, o2) -> o2 - o1 ) 높은 수 부터 정렬했다. PriorityQueue queue = new PriorityQ..
[Java] 백준 1448 번 (삼각형 만들기)
·
BOJ, Programmers
https://www.acmicpc.net/problem/1448 1448번: 삼각형 만들기 첫째 줄에 빨대의 개수 N이 주어진다. N은 3보다 크거나 같고, 1,000,000보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 빨대의 길이가 한 줄에 하나씩 주어진다. 빨대의 길이는 1,000,000보다 www.acmicpc.net 알고리즘 분류 수학 그리디 정렬 풀이 그리디 알고리즘과 정렬을 이용해 문제를 풀었다. 먼저 삼각형의 성립 조건을 알아야 한다. 삼각형의 성립 조건: a, b, c(가장 긴 변)이 있을 때 a + b > c 이어야 삼각형이 성립이 된다. 그래서 입력받은 배열을 정렬 후 뒤에서부터 차례로 삼각형이 성립이 되는지 if 조건문을 사용해 구했다. Arrays.sort(arr); fo..
[Java] 백준 1449번 (수리공 항승)
·
BOJ, Programmers
https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 알고리즘 분류 그리디 정렬 풀이 그리디 알고리즘을 사용해 풀었다. 핵심 로직은 이러하다. 먼저 StringTokenizer로 물이 세는 곳을 저장한뒤, 새는 곳이 차례대로 있어야 최소한의 테이프를 쓰게 되니 정렬까지 진행했다. st = new StringTokenizer(br.readLine()); for (int i = 0; i < temp.length; i++) { temp[i..