๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 14767_Flow Shop

๋ฟŒ์•ผ._. 2026. 4. 6. 12:41
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/14767)

< Flow Shop >

 

๋ฌธ์ œ ํ’€์ด 

 

๊ฐ ๋‹จ๊ณ„๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ์ด์ „ ์ˆ˜ํ™•๊ธฐ์˜ ๋‹จ๊ณ„๊ฐ€ ๋‹ค ์ง„ํ–‰๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. 

 

my solution (Java)

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class _14767_ { // Flow Shop

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st = new StringTokenizer(bf.readLine());

		int n = Integer.parseInt(st.nextToken());
		int m = Integer.parseInt(st.nextToken());

		int arr[][] = new int[n][m];

		for (int i = 0; i < n; i++) {
			st = new StringTokenizer(bf.readLine());
			for (int j = 0; j < m; j++) {
				arr[i][j] = Integer.parseInt(st.nextToken());
			}
		}

		int dp[][] = new int[n][m];
		for (int i = 0; i < n; i++) {
			for (int j = 0; j < m; j++) {
				if (i == 0) {
					if (j == 0) {
						dp[i][j] = arr[i][j];
						continue;
					}
					dp[i][j] = dp[i][j - 1] + arr[i][j];
				} else {
					if (j == 0) {
						dp[i][j] = dp[i - 1][j] + arr[i][j];
					} else {
						if (dp[i][j - 1] < dp[i - 1][j]) {
							dp[i][j] = dp[i - 1][j] + arr[i][j];
						} else {
							dp[i][j] = dp[i][j - 1] + arr[i][j];
						}
					}
				}
			}
		}
		for (int i = 0; i < n; i++) {
			bw.write(dp[i][m - 1] + " ");
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
n, m : ์ˆ˜ํ™•๊ธฐ ์ˆ˜, ๋‹จ๊ณ„ ์ˆ˜ 
arr : ๊ฐ ์ˆ˜ํ™•๊ธฐ์˜ ๊ฐ ๋‹จ๊ณ„ ์ˆ˜ํ–‰ ์‹œ๊ฐ„
dp : ๊ฐ ๋‹จ๊ณ„๊นŒ์ง€ ์™„๋ฃŒ๋˜๋Š” ์‹œ๊ฐ„

 

์ˆ˜ํ™•๊ธฐ ์ˆ˜, ๋‹จ๊ณ„ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ๊ฐ ์ˆ˜ํ™•๊ธฐ์˜ ๊ฐ ๋‹จ๊ณ„ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ์ž…๋ ฅ๋ฐ›์•„ arr์— ์ €์žฅํ•œ๋‹ค. arr์„ ์‚ดํŽด๋ณด๋ฉฐ, ์ฒซ ๋ฒˆ์งธ ์ˆ˜ํ™•๊ธฐ๋Š” ์ฐจ๋ก€๋Œ€๋กœ ์ง„ํ–‰ํ•˜๊ณ , ๋‹ค์Œ ์ˆ˜ํ™•๊ธฐ๋ถ€ํ„ฐ ์ด์ „ ์ˆ˜ํ™•๊ธฐ์˜ ์‹œ๊ฐ„์„ ํ™•์ธํ•œ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„์—์„œ๋Š” (์ด์ „ ์ˆ˜ํ™•๊ธฐ ์ฒซ ๋‹จ๊ณ„ ์™„๋ฃŒ ์‹œ๊ฐ„) + (ํ˜„์žฌ ์ˆ˜ํ™•๊ธฐ ์ฒซ ๋‹จ๊ณ„ ์™„๋ฃŒ ์‹œ๊ฐ„)์œผ๋กœ ๊ตฌํ•˜๊ณ , ๋‚˜๋จธ์ง€๋Š” ์ด์ „ ๋‹จ๊ณ„์—์„œ ๋๋‚œ ์‹œ๊ฐ„์ด ์ด์ „ ์ˆ˜ํ™•๊ธฐ์˜ ํ˜„์žฌ ๋‹จ๊ณ„ ์‹œ๊ฐ„๋ณด๋‹ค ๋น ๋ฅด๋‹ค๋ฉด ์ด์ „ ์ˆ˜ํ™•๊ธฐ ์‹œ๊ฐ„์„ ๊ธฐ์ค€์œผ๋กœ ํ˜„์žฌ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด์ „ ๋‹จ๊ณ„์—์„œ ๋๋‚œ ์‹œ๊ฐ„์ด ์ด์ „ ์ˆ˜ํ™•๊ธฐ์˜ ํ˜„์žฌ ๋‹จ๊ณ„ ์‹œ๊ฐ„๋ณด๋‹ค ๋А๋ฆฌ๋‹ค๋ฉด ์ด์ „ ๋‹จ๊ณ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ˜„์žฌ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. 

 

์ตœ์ข… dp๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค.     



 

'๐ŸŒžAlgorithm > ๐Ÿ”ฅBaekjoon' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Baekjoon] 26934_The Bus Card  (0) 2026.04.09
[Baekjoon] 27041_Leapcow  (0) 2026.04.08
[Baekjoon] 6245_Cow Solitaire  (0) 2026.04.03
[Baekjoon] 9844_Gecko  (0) 2026.04.02
[Baekjoon] 30337_Linas ir mandarinai  (0) 2026.04.01