본문 바로가기
🥇Problem Solving (psS2mj)/BOJ

[BOJ] 11399. ATM (Java)

by psS2mj 2021. 5. 2.
반응형

cf> [BOJ] 11399. ATM (Python3) 풀이: ming-jee.tistory.com/138

 

[BOJ] 11399. ATM (Python3)

www.acmicpc.net/problem/11399 (level: Silver III) 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)..

ming-jee.tistory.com

 

▲ 최근에 Python3으로 풀었던 그리디 문제를 자바로 다시 풀어보았다. (마지막 문제!!)

 

이번에도 파이썬으로 짰던 로직을 그대로 자바로 바꾸기만 했다.

 

이번 문제의 핵심은 입력 받은 배열을 오름차순으로 정렬한 뒤에, 차례대로 곱셈 처리를 해서 결과값에 누적시키는 건데 Arrays.sort를 이용했다. import하고 써야되는거 까먹어서 삽질 좀 하다가 무사히 성공✨ 그외 특이사항은 없었다.


대표이미지 설정을 위해 저번에 첨부했던 풀이노트를 다시 첨부함. 출처:  https://ming-jee.tistory.com/138  [만두의 모험]

import java.io.*;
import java.util.*;

/* @date: 2021/05/02
 * @author: psS2mj
 * @brief: BOJ_11399_ATM */

public class BOJ_11399_ATM {

	static int N, time = 0;
	static int[] waiting_times;

	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		N = Integer.parseInt(br.readLine());
		waiting_times = new int[N];

		StringTokenizer st = new StringTokenizer(br.readLine());
		for (int i = 0; i < N; i++) {
			waiting_times[i] = Integer.parseInt(st.nextToken());
		}
		Arrays.sort(waiting_times);

		for (int i = 0; i < N; i++) {
			time += waiting_times[i] * (N - i);
		}
		System.out.println(time);

	} // main

}

메모리가 절반! 코드 길이가 3배!!

이것저것 import 되다보니 지저분하기도 하고… 내가 새롭게 import할 때 자동으로 되게끔 하는 단축키를 알고 있었는데 지금 하려니까 기억이 안 나서 삽질 하다가 그냥 *를 사용했다.

import java.io.*;
import java.util.*;

바로 이렇게. 코딩테스트 볼 때도 그냥 이렇게 하면 되려나?🤔

 

개인적으로 궁금해서 import java.io.*; 말고 하나씩 다 import한 코드를 돌려봤는데, 메모리나 소요시간은 차이가 없어서 일단 그냥 * 쓰는 걸로.. 실제 코테에서는 다들 어떻게 하는지 찾아봐야겠다^_^

 

이로써 지난번에 푼 그리디 기본문제들 파이썬 코드 → 자바 코드로 바꾸기 완료!!!

앞으로가 중요하다. 파이팅!

반응형

댓글