알고리즘/Samsung
SW 1285. 아름이의 돌 던지기
son_i
2023. 5. 5. 02:02
728x90
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
기껏 다 풀었는데 자바로 제출이 안 돼서 제출은 못 했다.
package algorithm;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
/*
사용하는 클래스명이 Solution 이어야 하므로, 가급적 Solution.java 를 사용할 것을 권장합니다.
이러한 상황에서도 동일하게 java Solution 명령으로 프로그램을 수행해볼 수 있습니다.
*/
public class Solution
{
public static void main(String args[]) throws Exception
{
//System.setIn(new FileInputStream("C:\\so_Project\\workspace\\BaekJoon\\src\\algorithm\\input.txt"));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int T = Integer.parseInt(br.readLine()); //테스트 케이스
for(int i=1;i<=T;i++) { //하나의 테스트케이스마다 반복
int num = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int min = 100001;
Map <Integer,Integer> map = new HashMap<>();
for(int j=0;j<num;j++) { //돌 던진 거리(인덱스) + 던진사람 (값)
int length = Math.abs(Integer.parseInt(st.nextToken()));
map.put(length, map.getOrDefault(length,0)+1);
}
for(int j : map.keySet()) {
if(min>j) {
min = j;
}
}
System.out.println("#"+i+" "+min+" "+map.get(min));
}//하나의 테스트 케이스 끝
}
}
HashMap을 사용해서 간단하게 풀었다 !
근데 백준 2108번 문제 통계학문제에서 최빈값 구할 때 썼던 map 메소드가 기억이 안 나서 애룰 많이 먹었다 ㅡㅡ
뭐였나면 map.getOrDefault(key,value) !
이거를 어떤식으로 썼냐면 돌 던진 거리들이 주어지면 절대값을 구해서 map에 key로 넣어주고 동일한 key가 나올 때마다 value값을 1씩 증가시켜준다.
//map.put(key, value) length의 key값에 value를 넣어주는데 그 value가
작성 코드는 map.put(length, map.getOrDefault(length,0)+1);
//map.getOrDefault(key,value)형식으로 map에 일치하는 key값이 있다면 그 값을 반환하고 +1을해주고
일치하는 key값이 없었다면 기본값 value로 써준 0을 반환하고 1을 추가한다 !
이젠 외우자
728x90