https://www.acmicpc.net/problem/1713
λ¬Έμ
μλμ΄λ±νκ΅ νμνμ₯ ν보λ μΌμ κΈ°κ° λμ μ 체 νμμ μΆμ²μ μνμ¬ μ ν΄μ§ μλ§νΌ μ μ λλ€. κ·Έλμ νκ΅ ννμ΄μ§μ μΆμ²λ°μ νμμ μ¬μ§μ κ²μν μ μλ μ¬μ§νμ ν보μ μλ§νΌ λ§λ€μλ€. μΆμ²λ°μ νμμ μ¬μ§μ μ¬μ§νμ κ²μνκ³ μΆμ²λ°μ νμλ₯Ό νμνλ κ·μΉμ λ€μκ³Ό κ°λ€.
- νμλ€μ΄ μΆμ²μ μμνκΈ° μ μ λͺ¨λ μ¬μ§νμ λΉμ΄μλ€.
- μ΄λ€ νμμ΄ νΉμ νμμ μΆμ²νλ©΄, μΆμ²λ°μ νμμ μ¬μ§μ΄ λ°λμ μ¬μ§νμ κ²μλμ΄μΌ νλ€.
- λΉμ΄μλ μ¬μ§νμ΄ μλ κ²½μ°μλ νμ¬κΉμ§ μΆμ² λ°μ νμκ° κ°μ₯ μ μ νμμ μ¬μ§μ μμ νκ³ , κ·Έ μ리μ μλ‘κ² μΆμ²λ°μ νμμ μ¬μ§μ κ²μνλ€. μ΄λ, νμ¬κΉμ§ μΆμ² λ°μ νμκ° κ°μ₯ μ μ νμμ΄ λ λͺ μ΄μμΌ κ²½μ°μλ κ·Έλ¬ν νμλ€ μ€ κ²μλ μ§ κ°μ₯ μ€λλ μ¬μ§μ μμ νλ€.
- νμ¬ μ¬μ§μ΄ κ²μλ νμμ΄ λ€λ₯Έ νμμ μΆμ²μ λ°μ κ²½μ°μλ μΆμ²λ°μ νμλ§ μ¦κ°μν¨λ€.
- μ¬μ§νμ κ²μλ μ¬μ§μ΄ μμ λλ κ²½μ°μλ ν΄λΉ νμμ΄ μΆμ²λ°μ νμλ 0μΌλ‘ λ°λλ€.
ν보μ μ μ¦, μ¬μ§νμ κ°μμ μ 체 νμμ μΆμ² κ²°κ³Όκ° μΆμ²λ°μ μμλλ‘ μ£Όμ΄μ‘μ λ, μ΅μ’ νλ³΄κ° λꡬμΈμ§ κ²°μ νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μλ μ¬μ§νμ κ°μ Nμ΄ μ£Όμ΄μ§λ€. (1 ≤ N ≤ 20) λμ§Έ μ€μλ μ 체 νμμ μ΄ μΆμ² νμκ° μ£Όμ΄μ§κ³ , μ μ§Έ μ€μλ μΆμ²λ°μ νμμ λνλ΄λ λ²νΈκ° λΉ μΉΈμ μ¬μ΄μ λκ³ μΆμ²λ°μ μμλλ‘ μ£Όμ΄μ§λ€. μ΄ μΆμ² νμλ 1,000λ² μ΄νμ΄λ©° νμμ λνλ΄λ λ²νΈλ 1λΆν° 100κΉμ§μ μμ°μμ΄λ€.
μΆλ ₯
μ¬μ§νμ μ¬μ§μ΄ κ²μ¬λ μ΅μ’ ν보μ νμ λ²νΈλ₯Ό μ¦κ°νλ μμλλ‘ μΆλ ₯νλ€.
νμ΄
κ°λ¨νκ² student κ°μ²΄ Listμ μ μ₯νλ λ°©μμΌλ‘ ꡬνβΌοΈ
μλ μ§ νμΈ
π μλ€λ©΄ μΆμ² μ + 1
π μλ€λ©΄
γ» λ¨μ μ‘μνμ΄ μλ€λ©΄ μΆκ°
γ» μλ€λ©΄ μ λ ¬ ν, 0λ² νμ μμ ν μΆκ°
μ½λ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Deque;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.PriorityQueue;
import java.util.Set;
import java.util.StringTokenizer;
import java.util.TreeMap;
public class Main_BOJ_1713_ν보μΆμ²νκΈ° {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer stringTokenizer;
int N = Integer.parseInt(br.readLine());
int recommendNum = Integer.parseInt(br.readLine());
stringTokenizer = new StringTokenizer(br.readLine());
List<student> reco = new ArrayList<>();
for(int i = 0 ; i < recommendNum ; i++){
int num = Integer.parseInt(stringTokenizer.nextToken());
boolean flag = false;
for(int j = 0 ; j < reco.size(); j++){
if(reco.get(j).num == num){
reco.get(j).cnt++;
flag = true;
break;
}
}
// μλ‘ μΆκ°
if(!flag){
if(reco.size() >= N){
Collections.sort(reco);
reco.remove(0);
}
reco.add(new student(num, i, 1));
}
}
List<Integer> list = new ArrayList<>();
for(student s : reco){
list.add(s.num);
}
Collections.sort(list);
for(int n : list)
System.out.print(n + " ");
System.out.println();
}
public static class student implements Comparable<student>{
int num;
int idx;
int cnt;
student(int num, int idx, int cnt){
this.num = num;
this.idx = idx;
this.cnt = cnt;
}
@Override
public int compareTo(student o) {
// TODO Auto-generated method stub
int result = this.cnt - o.cnt;
if(result == 0)
result = this.idx - o.idx;
return result;
}
}
}
'μκ³ λ¦¬μ¦ > λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ λ°±μ€ / BOJ 1541 ] μμ΄λ²λ¦° κ΄νΈ ( JAVA / μλ° ) (0) | 2021.10.02 |
---|---|
[ λ°±μ€ / BOJ 1244 ] μ€μμΉ μΌκ³ λκΈ° ( JAVA / μλ° ) (0) | 2021.10.02 |
[ λ°±μ€ / BOJ 5766 ] ν μλ²μ§λ μ λͺ ν΄! (0) | 2021.10.01 |
[ λ°±μ€ / BOJ 20055 ] μ»¨λ² μ΄μ΄ λ²¨νΈ μμ λ‘λ΄ (0) | 2021.09.30 |
[ λ°±μ€ / BOJ 1120] λ¬Έμμ΄ (0) | 2021.09.29 |