๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/15237)
< Cipher >
๋ฌธ์ ํ์ด
๋น๋์๋ก ์ ๋ ฌํ๋ฉฐ, ๋น๋์๊ฐ ๊ฐ๋ค๋ฉด ์ ๋ ฅ ์์ผ๋ก ์ ๋ ฌํ๋ค.
์ ๋ ฅ ์์ ์ ์ฅํ๊ธฐ ์ํด HashMap์ value ๊ฐ์ ๋ฐฐ์ด๋ก ์ ์ธํ๋ฉฐ, ๋ฐฐ์ด 0๋ฒ์งธ ๊ฐ์ ์ ๋ ฅ ์, 1๋ฒ์งธ ๊ฐ์ ๋น๋์๋ก ๊ตฌํํ๋ค.
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.Comparator;
import java.util.HashMap;
import java.util.StringTokenizer;
public class _15237_ { // Cipher
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 = new StringTokenizer(bf.readLine());
int N = Integer.parseInt(st.nextToken());
int C = Integer.parseInt(st.nextToken());
st = new StringTokenizer(bf.readLine());
HashMap<Integer, int[]> map = new HashMap<>();
for (int i = 0; i < N; i++) {
int num = Integer.parseInt(st.nextToken());
if (map.containsKey(num)) {
map.get(num)[1] += 1;
} else {
int arr[] = { i, 1 };
map.put(num, arr);
}
}
ArrayList<Integer> list = new ArrayList<>(map.keySet());
Collections.sort(list, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
if (map.get(o1)[1] == map.get(o2)[1]) {
return map.get(o1)[0] - map.get(o2)[0];
}
return map.get(o2)[1] - map.get(o1)[1];
}
});
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < map.get(list.get(i))[1]; j++) {
bw.write(list.get(i) + " ");
}
}
bw.flush();
}
}
๋ณ์)
N, C : ๋ฉ์์ง ๊ธธ์ด, ์์ ์ซ์
map : HashMap <์์ ์ซ์, int [] arr >
num : ์์ ์ซ์
list : HashMap key -> ArrayList
๋ฉ์์ง ๊ธธ์ด N๊ณผ ์์ ์ซ์ C๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. N๋งํผ ์ ์๋ฅผ ์ ๋ ฅ๋ฐ์ HashMap์ key ๊ฐ์ผ๋ก ์๋ค๋ฉด value์ธ ๋ฐฐ์ด์ 1๋ฒ์งธ ๊ฐ์ 1 ์ฆ๊ฐํ๊ณ , key ๊ฐ์ผ๋ก ์๋ค๋ฉด value์ ๋ฐฐ์ด [์ ๋ ฅ ์์, 1]์ ์ ์ฅํ๋ค.
HashMap์ key ๊ฐ์ ArrayList๋ก ๋ณํ ํ ๋น๋์ ๊ธฐ์ค ๋ด๋ฆผ์ฐจ์, ๋น๋์๊ฐ ๊ฐ๋ค๋ฉด ์ ๋ ฅ ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค. ์ ๋ ฌํ ์์๋๋ก ๊ฐ์ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 6138_Exploration (0) | 2025.04.04 |
---|---|
[Baekjoon] 3211_kino (0) | 2025.04.02 |
[Baekjoon] 14184_IOI 2017 Logo (0) | 2025.04.01 |
[Baekjoon] 5614_ๅ้ก 3 (0) | 2025.03.31 |
[Baekjoon] 24755_Election Paradox (0) | 2025.03.27 |