๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

[๋ฐฑ์ค€] 5612๋ฒˆ: ํ„ฐ๋„์˜ ์ž…๊ตฌ์™€ ์ถœ๊ตฌ

by ์ฃผ๋ฐœ2 2020. 5. 1.
๋ฐ˜์‘ํ˜•

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

 

5612๋ฒˆ: ํ„ฐ๋„์˜ ์ž…๊ตฌ์™€ ์ถœ๊ตฌ

๋ฌธ์ œ ์ƒ๊ทผ์ด๋Š” ๋‚จ์‚ฐ1ํ˜ธํ„ฐ๋„์˜ ์ž…๊ตฌ์™€ ์ถœ๊ตฌ์—์„œ 1๋ถ„์— ํ†ต๊ณผํ•˜๋Š” ์ฐจ๋Ÿ‰์˜ ์ˆ˜๋ฅผ ์กฐ์‚ฌํ–ˆ๋‹ค. ์ด๋•Œ, ํ„ฐ๋„์— ์ฐจ๋Ÿ‰์ด ๊ฐ€์žฅ ๋งŽ์ด ์žˆ์—ˆ์„ ๋•Œ, ๋ช‡ ๋Œ€ ์žˆ์—ˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์—

www.acmicpc.net

์ฝ”๋“œ

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		int n = scan.nextInt();	// ์กฐ์‚ฌํ•œ ์‹œ๊ฐ„
		int m = scan.nextInt();	// ํ„ฐ๋„์•ˆ ์ฐจ๋Ÿ‰ ์ˆ˜
		int temp = m;
		int result = m;
		
		for(int i=0; i<n; i++) {
			int in = scan.nextInt();	// ์ž…๊ตฌ ํ†ต๊ณผํ•œ ์ฐจ์˜ ์ˆ˜
			int out = scan.nextInt();	// ์ถœ๊ตฌ ํ†ต๊ณผํ•œ ์ฐจ์˜ ์ˆ˜
			temp = temp + in - out;
			
			// ํ„ฐ๋„์•ˆ ์ฐจ๋Ÿ‰์˜ ์ˆ˜๊ฐ€ 0๋ณด๋‹ค ์ž‘์€๊ฒฝ์šฐ 0 ์ถœ๋ ฅ, 0๋ณด๋‹ค ํฐ๊ฒฝ์šฐ -> ์ด์ „์˜ ์ตœ๋Œ“๊ฐ’๊ณผ ๋น„๊ต
			result = (temp < 0) ? 0 : Math.max(temp, result);
			if(result == 0)	break;
		}
		System.out.println(result);
		scan.close();
	}

}

ํ’€์ด

์‹œ๊ฐ„๋‹น ํ„ฐ๋„์•ˆ์— ์กด์žฌํ•˜๋Š” ์ฐจ๋Ÿ‰์˜ ์ˆ˜๋ฅผ ๊ตฌํ•ด์„œ ๋น„๊ตํ•œ๋‹ค.

ํ„ฐ๋„์•ˆ์— ์กด์žฌํ•˜๋Š” ์ฐจ๋Ÿ‰์˜ ์ˆ˜ = ํ˜„์žฌ์ฐจ(temp) + ์ž…๊ตฌ ํ†ต๊ณผํ•œ ์ฐจ์˜์ˆ˜(in) - ์ถœ๊ตฌ ํ†ต๊ณผํ•œ ์ฐจ์˜ ์ˆ˜(out)

์ด ๋•Œ, ํ„ฐ๋„์•ˆ ์ฐจ๋Ÿ‰์˜ ์ˆ˜๊ฐ€ 0๋ณด๋‹ค ์ž‘์œผ๋ฉด 0์„ ์ถœ๋ ฅํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ด์ „์˜ ์ตœ๋Œ“๊ฐ’๊ณผ ๋น„๊ตํ•ด ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•œ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€