๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/13281)
< Look for the Winner! >
๋ฌธ์ ํ์ด
์ฐ์น์๊ฐ ๊ฒฐ์ ๋๋ ์กฐ๊ฑด
1) ํฌํ์๊ฐ 1์ผ ๋
2) ๋ ๋ฒ์งธ๋ก ํฐ ํฌํ์ + ๋จ์ ํฌํ์ < ๊ฐ์ฅ ํฐ ํฌํ์
3) ํ๋ณด์ ํ ๋ช ์ด ์ ๋ฐ ๋๋ ํ๋ฅผ ๊ฐ์ก์ ๋
my solution (Java)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.StringTokenizer;
public class _13281_ { // Look for the Winner!
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 = -1;
HashMap<Character, Integer> map = new HashMap<>();
String result = null;
while ((n = Integer.parseInt(bf.readLine())) != 0) {
st = new StringTokenizer(bf.readLine());
int max = -1, idx = -1;
for (int i = 0; i < n; i++) {
char x = st.nextToken().charAt(0);
if (map.containsKey(x)) {
map.replace(x, map.get(x) + 1);
} else {
map.put(x, 1);
}
if (max < map.get(x)) {
max = map.get(x);
result = x + "";
}
if (n == 1) {
idx = 1;
break;
}
List<Integer> list = new ArrayList<>(map.values());
Collections.sort(list, Collections.reverseOrder());
if ((list.size() > 1 && list.get(0) > list.get(1) + (n - (i + 1)))
|| (list.size() == 1 && i == n / 2)) {
idx = i + 1;
break;
}
}
if (idx == -1) {
bw.write("TIE\n");
} else {
bw.write(result + " " + idx + "\n");
}
map.clear();
}
bw.flush();
}
}
๋ณ์)
n : ํฌํ์
map : HashMap <ํ๋ณด์, ํฌํ์>
result : ์ฐ์น์
max, idx : ๊ฐ์ฅ ๋ง์ ํฌํ์, ์ฐ์น์๊ฐ ๊ฒฐ์ ๋ ๋์ ํฌํ์
x : ํ๋ณด์
list : HashMap values -> ArrayList
n์ด 0์ด ์๋ ๋๊น์ง ๋ค์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
1) n๋งํผ ํฌํ ๊ฒฐ๊ณผ๋ฅผ ์ ๋ ฅ๋ฐ์ HashMap์ ์ ์ฅํ๋ฉฐ ์ต๋ค ๋ํ ์์ ์ต๋ค ๋ํ ํ๋ณด์๋ฅผ ์ ์ฅํ๋ค.
2) n์ด 1์ด๋ผ๋ฉด ์ ๋ ฅ๋ฐ์ ํ๋ณด์๊ฐ ์ ๋ต์ด๋ฏ๋ก ์ข ๋ฃํ๋ค.
3) HashMap์ value ๊ฐ์ ArrayList๋ก ๋ณํ ํ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
4) ( ๋ ๋ฒ์งธ๋ก ํฐ ํฌํ์ + ๋จ์ ํฌํ์ < ๊ฐ์ฅ ํฐ ํฌํ์ ) ๋๋ ( ํ๋ณด์ ํ ๋ช ์ด ์ ๋ฐ ๋๋ ํ๋ฅผ ๊ฐ์ก์ ๋ ) ์ด ๊ฒฝ์ฐ ์ฐ์น์๊ฐ ํ์ ๋๋ฏ๋ก idx ๊ฐ์ ์ ๋ฐ์ดํธํ ํ ์ข ๋ฃํ๋ค.
5) idx๊ฐ -1์ด๋ผ๋ฉด TIE๋ฅผ ์ถ๋ ฅํ๊ณ -1์ด ์๋๋ผ๋ฉด result์ idx๋ฅผ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 9979_Does This Make Me Look Fat? (0) | 2024.12.26 |
---|---|
[Baekjoon] 27035_Bovine Ballroom Dancing (0) | 2024.12.24 |
[Baekjoon] 21208_Gratitude (1) | 2024.12.20 |
[Baekjoon] 15282_Frosh Week (0) | 2024.12.19 |
[Baekjoon] 5078_Shirts (0) | 2024.12.18 |