https://www.acmicpc.net/problem/5766
๋ฌธ์
"๊ทธ ๋ด์ค" ๋ฅผ ๋ณด๊ณ ์จ ๊ฐ์กฑ์ด ๋ค๋ด์ต๋๋ค. ๋ชจ๋๋ค ํ ์๋ฒ์ง๊ป์ ์ ์ญ๋ ๊ฐ ๊ต์ฅํ ์ค๋ ฅ์๋ ๋ธ๋ฆฟ์ง(์นด๋๊ฒ์์ ์ผ์ข ) ์ ์์๋ค๋ ๊ฒ์ ์๊ณ ์์์ง๋ง, ํ ์๋ฒ์ง๊ฐ ์ญ๋ ์ต๊ณ ์ bridge ์ ์๋ก์ ๊ธฐ๋ค์ค๋ถ์ ์ค๋ฅธ๋ค๋ ์์์ ์ ๋ง์ด์ง ๋๋ผ์ ์ฃ !
IBA(๊ตญ์ ๋ธ๋ฆฟ์ง ํํ)๋ ์ ๋ ๊ฐ, ๋งค์ฃผ ๊ฐ์ฅ ์ค๋ ฅ์๋ ์ ์๋ค์ ๋ญํน ์ ๋ณด๋ฅผ ๊ธฐ๋กํด์์ต๋๋ค. ๋งค์ฃผ ๋ญํน์ ์ ์์ ์ด๋ฆ์ด ์ค๋ฅผ ๋๋ง๋ค ์ ์์ ํฌ์ธํธ๊ฐ 1ํฌ์ธํธ์ฉ ์ค๋ฅด๋๋ฐ, ํ ์๋ฒ์ง๊ป์ ๊ฐ์ฅ ๋ง์ ํฌ์ธํธ๋ฅผ ์ป์ด์ ์ต๊ณ ์ ๋ธ๋ฆฟ์ง ์ ์๋ก ์ ์ ๋์์ต๋๋ค.
ํ ์๋ฒ์ง๊ป๋ ๊ทธ์ ๋ธ๋ฆฟ์ง ์์๋ฅผ ๊ฒฝ์ํ๋ ์น๊ตฌ๋ค์ด ๋ง์ด ์์๊ธฐ ๋๋ฌธ์, ํ ์๋ฒ์ง๋ ์ด๋ค ์ ์(๋ค)๊ฐ 2๋ฑ์ ํ๋์ง ์ ๋ง ๊ถ๊ธํ์ จ์ต๋๋ค.
IBA ๋ญํน ์ ๋ณด๋ ์ด์ ์จ๋ผ์ธ์ ์ฌ๋ผ์ ์๊ณ , ํ ์๋ฒ์ง๊ป์ ๋น์ ์๊ฒ ๋์์ ์์ฒญํ์ต๋๋ค. ๋น์ ์ ๋งค์ฃผ๋ง๋ค์ ๋ญํน ์ ๋ณด ๋ฆฌ์คํธ๋ฅผ ์ธํ์ผ๋ก ๋ฐ์ 2๋ฑ ์ ์๊ฐ ๋๊ตฌ์ธ์ง ์์๋ด๋ ํ๋ก๊ทธ๋จ์ ์ง์ผ ํฉ๋๋ค.
์ ๋ ฅ
๊ฐ ์ ์๋ 1~10000๊น์ง์ ์ ์(์ ์ ๋ฒํธ)๋ก ์๋ณ๋ฉ๋๋ค. ์ธํ์ ์ฌ๋ฌ ํ ์คํธ ์ผ์ด์ค๋ค๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
ํ ์คํธ ์ผ์ด์ค์ ์ฒซ ํ์๋ ๋ ์ ์ N๊ณผ M์ด ์ฃผ์ด์ง๋๋ฐ, ๋ค์ ํ๋ถํฐ N(2<=N<=500)์ฃผ ๋์์ ๋งค์ฃผ ์์ M(2<=M<=500)๋ช ์ ๋ญํน ์ ๋ณด๊ฐ ์ฃผ์ด์ง์ ์๋ฏธํฉ๋๋ค.
๊ทธ ๋ค์ Nํ์ ์ธํ์ด ์ฃผ์ด์ง๋๋ฐ ๊ฐ ํ์ ํ ์ฃผ์ ๋ญํน ์ ๋ณด์ ๋๋ค. ๊ฐ ํ์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋๋ M๊ฐ์ ์ ์๋ค์ด ์ฃผ์ด์ง๋๋ค.
- ๊ฐ ํ ์คํธ ์ผ์ด์ค์๋ ์ต๊ณ ์ ์ ์ ์๊ฐ ๋จ ํ ๋ช ๋ง ์กด์ฌํฉ๋๋ค.
- ๋งค์ฃผ๋ง๋ค์ ๋ญํน ์ ๋ณด์๋ ์๋ก ๋ค๋ฅธ M๊ฐ์ ์ ์ ๋ฒํธ๊ฐ ์ฃผ์ด์ง๋๋ค.
N๊ณผ M์ด ๋ชจ๋ 0์ผ๋ก ์ฃผ์ด์ง๋ ํ์ด ์ธํ์ ๋ง์ง๋ง์ ๋๋ค.
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค, ๋น์ ์ ํ๋ก๊ทธ๋จ์ ํ ํ์ 2๋ฑ์ธ ์ ์(๋ค)์ ๋ฒํธ๋ฅผ ์ถ๋ ฅํด์ผ ํฉ๋๋ค. 2๋ฑ์ธ ์ ์๊ฐ ๋ ๋ช ์ด์์ธ ๊ฒฝ์ฐ(๋์ ์ ๋ฐ์), ๊ฐ ์ ์ ๋ฒํธ๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํ์ฌ ์ค๋ฆ์ฐจ์์ผ๋ก ์ถ๋ ฅํด์ผ ํฉ๋๋ค.
ํ์ด
์ฒ์์ ๋ฐฐ์ด๋กํ๋ฉด ์๊ฐ์ด๊ณผ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํด์,,,,, Map์ผ๋ก ํ์๋๋ฐ....... ๐คทโ๏ธ ์๊ฐ์ด๊ณผโผ๏ธโผ๏ธโผ๏ธ
๊ทธ๋์ ๊ฐ์ฒด ๋ฐฐ์ด๋ก ํด๋ณด๋... ์ ๋ตโผ๏ธ๐คฆโ๏ธ
์ฝ๋
Map์ผ๋ก ์๊ฐ์ด๊ณผ ์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;
import java.util.TreeMap;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer stringTokenizer;
StringBuilder sb = new StringBuilder();
int N, M;
while(true){
TreeMap<Integer, Integer> player = new TreeMap<>();
stringTokenizer = new StringTokenizer(br.readLine());
N = Integer.parseInt(stringTokenizer.nextToken());
M = Integer.parseInt(stringTokenizer.nextToken());
if(N == 0 && M == 0)
break;
for(int i = 0 ; i < N ; i++){
stringTokenizer = new StringTokenizer(br.readLine());
for(int j = 0 ; j < M ; j++){
int playerNum = Integer.parseInt(stringTokenizer.nextToken());
player.put(playerNum, player.getOrDefault(playerNum, 0)+1);
}
}
List<Integer> listKeySet = new ArrayList<>(player.keySet());
Collections.sort(listKeySet, (value1, value2) -> (player.get(value2).compareTo(player.get(value1))));
int secondPlayer = player.get(listKeySet.get(1));
sb.append(listKeySet.get(1)).append(" ");
for(int i = 2 ; i < listKeySet.size() ; i++){
if(secondPlayer == player.get(listKeySet.get(i)))
sb.append(listKeySet.get(i)).append(" ");
else{
sb.append('\n');
break;
}
}
}
System.out.println(sb);
}
}
๊ฐ์ฒด ๋ฐฐ์ด๋ก ๋ง์ ์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;
import java.util.TreeMap;
public class Main_BOJ_5766_ํ ์๋ฒ์ง๋์ ๋ช
ํด {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer stringTokenizer;
StringBuilder sb = new StringBuilder();
while(true){
stringTokenizer = new StringTokenizer(br.readLine());
int N = Integer.parseInt(stringTokenizer.nextToken());
int M = Integer.parseInt(stringTokenizer.nextToken());
if(N == 0 && M == 0)
break;
player players[] = new player[10001];
for(int i = 0 ; i < 10001 ; i++){
players[i] = new player(i, 0);
}
for(int i = 0 ; i < N ; i++){
stringTokenizer = new StringTokenizer(br.readLine());
for(int j= 0 ; j < M ; j++){
int playerNum = Integer.parseInt(stringTokenizer.nextToken());
players[playerNum].score++;
}
}
Arrays.sort(players);
int second = players[1].score;
for(int i = 1; i < 10001 ; i++){
if(players[i].score == second){
sb.append(players[i].num).append(" ");
}
}
sb.append("\n");
}
System.out.println(sb);
}
public static class player implements Comparable<player>{
int num;
int score;
player(int num, int score){
this.num = num;
this.score = score;
}
@Override
public int compareTo(player o) {
// TODO Auto-generated method stub
int result = o.score - this.score;
if(result == 0)
result = this.num - o.num;
return result;
}
}
}
'์๊ณ ๋ฆฌ์ฆ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ๋ฐฑ์ค / BOJ 1244 ] ์ค์์น ์ผ๊ณ ๋๊ธฐ ( JAVA / ์๋ฐ ) (0) | 2021.10.02 |
---|---|
[ ๋ฐฑ์ค / BOJ 1713 ] ํ๋ณด ์ถ์ฒํ๊ธฐ (0) | 2021.10.01 |
[ ๋ฐฑ์ค / BOJ 20055 ] ์ปจ๋ฒ ์ด์ด ๋ฒจํธ ์์ ๋ก๋ด (0) | 2021.09.30 |
[ ๋ฐฑ์ค / BOJ 1120] ๋ฌธ์์ด (0) | 2021.09.29 |
[ ๋ฐฑ์ค / BOJ 14467 ] ์๊ฐ ๊ธธ์ ๊ฑด๋๊ฐ ์ด์ 1 (0) | 2021.09.15 |