티스토리 뷰

Algorithm

[백준] S2 16112 5차 전직 (java)

코딩브론즈 2020. 12. 18. 16:08

www.acmicpc.net/problem/16112

 

16112번: 5차 전직

메이플스토리 뉴비 키파가 드디어 레벨 200을 달성하고 5차 전직이라는 시스템을 이용해 캐릭터를 더욱 강력하게 만들려고 합니다. 5차 전직을 하려면 먼저 퀘스트를 통해 아케인스톤이라는 아

www.acmicpc.net

 

풀이

 

1) 경험치 배열을 오름차순으로 정렬한다.

2) 스톤의 갯수를 잘 카운트하면서 얼만큼 더할지 정해준다

 

 

주의사항

 

1) int로 못함

 

package com.baekJoon;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class BJ_S2_16112_5차전직 {
	static BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
	static StringTokenizer tokens;
	static int N,K;
	static long exp[];
	public static void main(String[] args) throws NumberFormatException, IOException {
		input = new BufferedReader(new StringReader(src));
		tokens = new StringTokenizer(input.readLine());
		N = Integer.parseInt(tokens.nextToken());
		K = Integer.parseInt(tokens.nextToken());
		exp = new long[N];
		tokens = new StringTokenizer(input.readLine());
		for(int n=0; n<N; n++) {
			exp[n] = Integer.parseInt(tokens.nextToken());
		}
		Arrays.sort(exp);
		long max = 0;
		int k=1;
		for(int i=1; i<N; i++) {
			if(k<K) { // 스톤의 개수
				max += exp[i]*k;
				k++;
			}
			else{
				max += exp[i]*k;
			}
		}
		System.out.println(max);
	}


	static String src =
			"3 2\r\n" + 
			"100 300 200";
}

 

 

후기

 

result만 long으로 하면 상관없을줄 알았는데 exp[] 도 long형으로 해야했다.

result만 long으로 했을때 안되길래 sum과 carry로 문자열을 만들어서 출력해야 하는줄 알았지만 시간초과가 났다..

정말 쉬운문제지만 2번이나 틀린게 자존심 상한다. 이로써 한층더 성장했기를..

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함