https://www.acmicpc.net/problem/14724
문제코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
Map<String,Integer> mymap= new LinkedHashMap<String,Integer>();
int a=Integer.parseInt(br.readLine());
mymap.put("PROBRAIN",0);
mymap.put("GROW",0);
mymap.put("ARGOS",0);
mymap.put("ADMIN",0);
mymap.put("ANT",0);
mymap.put("MOTION",0);
mymap.put("SPG",0);
mymap.put("COMON",0);
mymap.put("ALMIGHTY",0);
for(String key:mymap.keySet()){
String arr[]=br.readLine().split(" ");
for(int i=0;i<a;i++){
if(mymap.get(key)<Integer.parseInt(arr[i])){
mymap.put(key,Integer.parseInt(arr[i]));
}
}
}
int max=0;
String maxkey="";
for(String key:mymap.keySet()){
if(max<mymap.get(key)){
max=mymap.get(key);
maxkey=key;
}
}
bw.write(maxkey);
bw.flush();
bw.close();
br.close();
}
}
풀이
순서가 있는 Linked HashMap을 사용하여 동아리이름을 키값으로 하여 초기값 0을 넣는다.
그리고 키값의 개수만큼 반복하여 문장을 입력받는데, 그 문장을 split메서드로 공백기준으로 분리하고 정수로 바꿔준다.
그리고 분리된 정수가 Linked HashMap에 있는 값보다 크다면, 분리된 정수로 값을 대체한다.
그러면 받은 문장에서 가장 큰 정수만이 Linked HashMap에 들어갈 것이고,
우리는 거기서 가장 큰수가 어느 키에 해당하는지 출력하면된다.
다시한번 키의 수만큼 반복을 돌려서 최대값을 찾아내고, 그때의 키값을 출력한다.
'Koala - 13기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/python] 10950번: A+B - 3 (0) | 2024.01.14 |
---|---|
[백준/Python] 9325번: 얼마? (0) | 2024.01.14 |
시험 성적(Python) (0) | 2024.01.14 |
[백준/java] 11944번: NN (0) | 2024.01.14 |
[백준/Python] 2752번: 세수정렬 (0) | 2024.01.14 |