๋ฌธ์ (์ถ์ฒ: 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 |