🌞Algorithm/🔥Baekjoon

[Baekjoon] 14769_Stacking Cups

뿌야._. 2024. 12. 5. 17:04
문제(출처: 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