Coding Test/baekjoon

[백준 15486] 퇴사 2- java (solved.ac - 골드 5)

조용장 2022. 9. 28. 23:13

https://www.acmicpc.net/problem/15486

 

15486번: 퇴사 2

첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000)

www.acmicpc.net

풀이

문제를 보았을 때 알 수 있는 힌트

일자와 금액이 담아 있는 리스트를 만들고 뒤에서 부터 계산하는 식으로 풀면 쉽게 풀 수 있다.

먼저 값을 초과하는 것을 0으로 변경 시키는 작업을 해주었다. 굳이 안해도 될 수 있지만 오류가 날수 있을것이라고 판단하여 없애주었다.

이후 뒤에서부터 현재값+이후 시간 값과 이전 값을 비교해서 큰값을 현재 값에 넣어 주면서 진행하면 n_list[0] 번째에 원하는 값을 얻을 수 있다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.reflect.Array;
import java.util.Arrays;

public class Main {
	static int n;
	static int n_list[][];
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		n = Integer.parseInt(br.readLine());
		n_list = new int[n+1][2];
		for (int i = 0; i < n; i++) {
			String[] temp = br.readLine().split(" ");
			n_list[i][0]= Integer.parseInt(temp[0]);
			n_list[i][1]= Integer.parseInt(temp[1]);
		}
		for (int i = 0; i < n; i++) {
			if(n_list[n-1-i][0]>i+1) {
				n_list[n-1-i][0] = 0;
				n_list[n-1-i][1] = 0;
			}
		}
		
//		for (int[] i : n_list) {
//			System.out.println(Arrays.toString(i));
//		}
//		System.out.println();
		
		for (int i = 1; i < n; i++) {
			int time = n_list[n-1-i][0];
			if((n_list[n-1-i+time][1]+n_list[n-1-i][1])>n_list[n-1-i+1][1]) {
				n_list[n-1-i][1] = n_list[n-1-i+time][1]+n_list[n-1-i][1];		
			}
			else {
				n_list[n-1-i][1] = n_list[n-1-i+1][1];
			}
		}
//		for (int[] i : n_list) {
//			System.out.println(Arrays.toString(i));
//		}
//		System.out.println();
		System.out.println(n_list[0][1]);
	}

}

https://github.com/dydwkd486/coding_test/blob/main/baekjoon/java/baekjoon15486/Main.java

 

GitHub - dydwkd486/coding_test: 코딩테스트 공부한 내용 정리

코딩테스트 공부한 내용 정리. Contribute to dydwkd486/coding_test development by creating an account on GitHub.

github.com