문제(출처: https://www.acmicpc.net/problem/14769)
< Stacking Cups >
문제 풀이
radius 기준 오름차순으로 정렬한다.
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.Arrays;
import java.util.StringTokenizer;
import java.io.InputStreamReader;
public class _14769_ { // Stacking Cups
static class Info implements Comparable<Info> {
private String color;
private int radius;
public Info(String color, int radius) {
this.color = color;
this.radius = radius;
}
@Override
public int compareTo(Info o) {
return this.radius - o.radius;
}
}
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st;
int n = Integer.parseInt(bf.readLine());
Info[] arr = new Info[n];
for (int i = 0; i < n; i++) {
st = new StringTokenizer(bf.readLine());
String a = st.nextToken();
String b = st.nextToken();
if (Character.isDigit(a.charAt(0))) {
arr[i] = new Info(b, Integer.parseInt(a) / 2);
} else {
arr[i] = new Info(a, Integer.parseInt(b));
}
}
Arrays.sort(arr);
for (int i = 0; i < n; i++) {
bw.write(arr[i].color + "\n");
}
bw.flush();
}
}
변수)
n : 컵 개수
arr : 정보
Info
color, radius를 변수로 가짐
radius기준 오름차순으로 객체를 비교한다.
Main
컵 개수 n을 입력받아 n만큼 정보를 입력받는다. 앞에 정보가 숫자라면 2로 나눠 저장하고, 앞에 정보가 색이라면 그대로 저장한다. 배열을 정렬하여 순서대로 색을 출력한다.
'🌞Algorithm > 🔥Baekjoon' 카테고리의 다른 글
[Baekjoon] 11649_Xedni Drawkcab (1) | 2024.12.09 |
---|---|
[Baekjoon] 21177_No Thanks! (1) | 2024.12.06 |
[Baekjoon] 6752_Time on task (0) | 2024.12.04 |
[Baekjoon] 21194_Meditation (0) | 2024.12.03 |
[Baekjoon] 6147_Bookshelf (0) | 2024.12.02 |