๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 14455_Don't Be Last!

๋ฟŒ์•ผ._. 2025. 2. 6. 17:39
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/14455)

< Don't Be Last! >

 

๋ฌธ์ œ ํ’€์ด 

 

HashMap์— ์ €์žฅํ•œ ๋’ค value ๊ธฐ์ค€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค. ๋‘ ๋ฒˆ์งธ๋กœ ์ ์€ ์šฐ์œ ์˜ ์–‘์„ ์ƒ์‚ฐํ•˜๋Š” ์†Œ์˜ ์ด๋ฆ„์„ ์ถœ๋ ฅํ•œ๋‹ค.

* ๋‘ ๋ฒˆ์งธ๋กœ ์ ์€ ์šฐ์œ ์˜ ์–‘์„ ์ƒ์‚ฐํ•˜๋Š” ์†Œ๊ฐ€ ์—ฌ๋Ÿฌ ๋งˆ๋ฆฌ ์ด๊ฑฐ๋‚˜ 7๋งˆ๋ฆฌ ์†Œ๊ฐ€ ๋‹ค ๋˜‘๊ฐ™์€ ๊ฐ’์ด๋ผ๋ฉด "Tie"๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

 my solution (Java)

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.StringTokenizer;

public class _14455_ { // Don't Be Last!

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st;
        
		int N = Integer.parseInt(bf.readLine());
        
		HashMap<String, Integer> map = new HashMap<>();
		map.put("Bessie", 0);
		map.put("Elsie", 0);
		map.put("Daisy", 0);
		map.put("Gertie", 0);
		map.put("Annabelle", 0);
		map.put("Maggie", 0);
		map.put("Henrietta", 0);
        
		for (int i = 0; i < N; i++) {
			st = new StringTokenizer(bf.readLine());
            
			String name = st.nextToken();
			map.replace(name, map.get(name) + Integer.parseInt(st.nextToken()));
		}
        
		ArrayList<String> list = new ArrayList<>(map.keySet());
		Collections.sort(list, new Comparator<String>() {
			@Override
			public int compare(String o1, String o2) {
				return map.get(o1).compareTo(map.get(o2));
			}
		});
        
		int min = -1;
		boolean flag = false;
		String result = "";
		for (int i = 0; i < list.size(); i++) {
			if (map.get(list.get(i)) != map.get(list.get(0)) && min == -1) {
				min = map.get(list.get(i));
				result = list.get(i);
			} else if (map.get(list.get(i)) == min) {
				flag = true;
				break;
			}
		}
        
		if (min == -1 || flag) {
			System.out.println("Tie");
		} else {
			System.out.println(result);
		}
	}
}

 

๋ณ€์ˆ˜)
N : log ์ˆ˜
map : HashMap <์ด๋ฆ„, ์ˆ˜>
name : ์ด๋ฆ„
list : HashMap key -> ArrayList
min : ์ตœ์†Ÿ๊ฐ’
flag : ์—ฌ๋Ÿฌ ๋งˆ๋ฆฌ์ธ์ง€ ํ™•์ธ
result : ๋‘ ๋ฒˆ์งธ๋กœ ์ ์€ ์šฐ์œ ์˜ ์–‘์„ ์ƒ์‚ฐํ•˜๋Š” ์†Œ ์ด๋ฆ„

 

N์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ๋ฏธ๋ฆฌ 7๋งˆ๋ฆฌ์˜ ์†Œ๋ฅผ HashMap์— ์ €์žฅํ•˜๊ณ  N๋งŒํผ ์†Œ ์ด๋ฆ„๊ณผ ์šฐ์œ  ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ HashMap์— ๊ฐ’์„ ์—…๋ฐ์ดํŠธํ•œ๋‹ค. HashMap์˜ key ๊ฐ’์„ ArrayList๋กœ ์ €์žฅํ•˜๊ณ  value๊ฐ’ ๊ธฐ์ค€ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ArrayList๋ฅผ ์ •๋ ฌํ•œ๋‹ค. ArrayList๋ฅผ ํƒ์ƒ‰ํ•˜๋ฉฐ ๋‘ ๋ฒˆ์งธ๋กœ ์ ์€ ์šฐ์œ ์˜ ์–‘์„ ์ƒ์‚ฐํ•˜๋Š” ์†Œ์˜ ์ด๋ฆ„์„ ์ฐพ๋Š”๋‹ค. ์ด๋•Œ ๋‘ ๋ฒˆ์งธ๋กœ ์ ์€ ์šฐ์œ ์˜ ์–‘์„ ์ƒ์‚ฐํ•˜๋Š” ์†Œ๊ฐ€ ์—ฌ๋Ÿฌ ๋งˆ๋ฆฌ์ธ์ง€ ํ™•์ธํ•œ๋‹ค.

 

๋งŒ์•ฝ ๋‘ ๋ฒˆ์งธ๋กœ ์ ์€ ์šฐ์œ ์˜ ์–‘์„ ์ƒ์‚ฐํ•˜๋Š” ์†Œ๊ฐ€ ์—ฌ๋Ÿฌ ๋งˆ๋ฆฌ์ด๊ฑฐ๋‚˜ 7๋งˆ๋ฆฌ์˜ ์†Œ๊ฐ€ ๋‹ค ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด "Tie"๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด result๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. 



 

'๐ŸŒžAlgorithm > ๐Ÿ”ฅBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Baekjoon] 18706_Coffee  (0) 2025.02.07
[Baekjoon] 4351_Hay Points  (1) 2025.02.05
[Baekjoon] 6513_Deli Deli  (1) 2025.02.04
[Baekjoon] 7107_Journey of A Knight  (1) 2025.02.03
[Baekjoon] 5093_Letter Replacement  (1) 2025.01.24