구름LEVEL
구름LEVEL 문제를 풀이하고 부족한 부분을 보완하며 실력을 키워보세요. 구름LEVEL은 코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입
level.goorm.io
📌- 풀이
- HashMap<Integer.int[]> 을 만들어서 v를 key 값으로 value에 [index, w]를 넣음
- map.get(v)로 해당하는 값이 있을 때 -> 현재 가지고 있는 w의 값고 map.get(v)의 w 값을 비교해서 현재 w가 더 크거나 같으면 삽입함
- map의 key값으로 For문을 돌면서 결과값을 나타냄
🔥 - Java 코드
import java.io.*;
import java.util.*;
class Main {
static int n;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
n = Integer.parseInt(st.nextToken());
HashMap<Integer,int[]> map = new HashMap();
for(int i =0; i<n;i++){
st = new StringTokenizer(br.readLine());
int v = Integer.parseInt(st.nextToken());
int w = Integer.parseInt(st.nextToken());
int[] arr = {i+1,w};
if(map.get(v) == null){
map.put(v,new int[2]);
}
if(map.get(v) == null || map.get(v)[1] <= w){
map.put(v,arr);
}
}
long result =0;
for(int i : map.keySet()){
result += map.get(i)[0];
}
System.out.println(result);
}
}