본문 바로가기
알고리즘/Samsung

SW 1285. 아름이의 돌 던지기

by son_i 2023. 5. 5.
728x90

SW Expert Academy

 

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을 추가한다 !

이젠 외우자

'알고리즘 > Samsung' 카테고리의 다른 글

SW 1928. Base64 Decoder  (0) 2023.05.05
SW 1940. 가랏! RC카 !  (0) 2023.05.05
SW 1945. 간단한 소인수분해  (0) 2023.05.02
SW 1946. 간단한 압축 풀기  (0) 2023.05.02
SW 1948. 날짜 계산기  (0) 2023.05.02