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

[๋ฐฑ์ค€] 2858๋ฒˆ: ๊ธฐ์ˆ™์‚ฌ ๋ฐ”๋‹ฅ

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

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

 

2858๋ฒˆ: ๊ธฐ์ˆ™์‚ฌ ๋ฐ”๋‹ฅ

๋ฌธ์ œ ์ƒ๊ทผ์ด๋Š” ๊ธฐ์ˆ™์‚ฌ ์ƒํ™œ์„ ํ•œ๋‹ค. ์ƒ๊ทผ์ด์˜ ๋ฐฉ์˜ ํฌ๊ธฐ๋Š” L*W ์ด๋‹ค. ์ˆ˜์—…์‹œ๊ฐ„์— ํƒ€์ผ ์ฑ„์šฐ๊ธฐ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋˜ ์ƒ๊ทผ์ด๋Š” ์ž์‹ ์˜ ๋ฐฉ๋„ 1*1ํฌ๊ธฐ ํƒ€์ผ๋กœ ์ฑ„์šฐ๋ ค๊ณ  ํ•œ๋‹ค. ์ด๋•Œ, ๊ฐ€์žฅ์ž๋ฆฌ๋Š” ๋นจ๊ฐ„์ƒ‰์œผ๋กœ, ๋‚˜๋จธ์ง€๋Š” ๊ฐˆ์ƒ‰์œผ๋กœ ์ฑ„์šฐ๋ ค๊ณ  ํ•œ๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ ์ƒ๊ทผ์ด์˜ ๋ฐฉ์˜ ํฌ๊ธฐ๊ฐ€ 4*3์ผ ๋•Œ ์ด๋‹ค. ์–ด๋Š ๋‚  ์ƒ๊ทผ์ด๋„ค ๋ฐฉ์— ํ•˜๊ทผ์ด๊ฐ€ ๋†€๋Ÿฌ์™”๋‹ค. ํ•˜๊ทผ์ด๋Š” ์•„๋ฆ„๋‹ค์šด ํƒ€์ผ ๋ฐฐ์น˜์— ๊ฐ๋™๋ฐ›์•˜๋‹ค. ๋‹ค์‹œ ๋ฐฉ์œผ๋กœ ๋Œ์•„์˜จ ํ•˜๊ทผ์ด๋Š” ๋นจ๊ฐ„์ƒ‰๊ณผ ๊ฐˆ์ƒ‰ ํƒ€์ผ์˜ ๊ฐœ์ˆ˜๋Š” ๊ธฐ์–ตํ–ˆ์ง€๋งŒ, ๋ฐฉ์˜ ํฌ๊ธฐ๋Š”

www.acmicpc.net

 

 

 

์ฝ”๋“œ

import java.util.Scanner;

public class Main {
	static final int max = 5000;
	static final int max2 = 4000;

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int R = scan.nextInt();	// ๋นจ๊ฐ•
		int B = scan.nextInt();	// ๊ฐˆ์ƒ‰
		int L = 0;
		int W = 0;

		for(int i=1; i<=max; i++) {
			for(int j=1; j<=max2; j++) {
				if(R+B == i*j) {
					if(R == (i*2) + (j-2)*2) {
						L = i;
						W = j;
						break;
					}
					else if(R == (j*2) + (i-2)*2) {
						L = j;
						W = i;
						break;
					}
				}
			}
		}

		System.out.println(L + " " + W);
		scan.close();
	}

}

 

ํ’€์ด

๋‚˜๋Š” ์ˆ˜ํ•™์ ์œผ๋กœ ๊ทœ์น™์„ ์ฐพ์•„์„œ ํ•ด๊ฒฐํ–ˆ๋‹ค ..

 

๊ฐ€๋กœ = L, ์„ธ๋กœ = W, ๋นจ๊ฐ„์ƒ‰ = R, ๊ฐˆ์ƒ‰ = B๋ผ๊ณ  ํ–ˆ์„๋•Œ,(L>W)

 

์ผ๋‹จ ์ฒซ๋ฒˆ์งธ ์กฐ๊ฑด์€ ๊ฐ€๋กœ * ์„ธ๋กœ = ๋นจ๊ฐ„์ƒ‰ํƒ€์ผ + ๊ฐˆ์ƒ‰ ํƒ€์ผ์ด๋‹ค.

1) L * W = R + B

 

๊ฐ€์žฅ ์ž๋ฆฌ๋Š” ๋นจ๊ฐ„์ƒ‰์ด๋ฏ€๋กœ, ๋นจ๊ฐ„์ƒ‰ ํƒ€์ผ์˜ ํ•ฉ์€

์œ—๋ณ€(L) + ์•„๋žซ๋ณ€(L) + (์˜†๋ณ€-2)(W-2) + (์˜†๋ณ€-2)(W-2) ์ด๋‹ค.

์œ„ ์‚ฌ์ง„์—์„œ, L = 4, W = 3์ด๋‹ค.

ํ•˜์ง€๋งŒ ๊ฐ ๊ผญ์ง“์ ์˜ ๋ฉด์€ ๊ฒน์น˜๋ฏ€๋กœ ๋”ํ• ๋•Œ ๋นผ์ค€๋‹ค.

2) R = (L*2) + (W-2) * 2

 

 

1) L * W = R + B

2) R = (L*2) + (W-2) * 2

์œ„ ๋‘ ์‹์„ ๊ทธ๋Œ€๋กœ ์ ์šฉํ–ˆ๋‹ค..

 

1 <= B <= 2,000,000 ์ด๋ฏ€๋กœ i, j์˜ ์ตœ๋Œ“๊ฐ’์€ 5,000 , 4,000 ์œผ๋กœ ์žก์•˜๋‹ค.

 

1) i, j์˜ ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด R+B = i*j ์ธ ๊ณณ์„ ์ฐพ๋Š”๋‹ค.

2) R+b = i*j ์ผ๋•Œ, R = (i*2) + (j-2) *2 ์ธ ๊ณณ์„ ์ฐพ๋Š”๋‹ค.

3) L์ด W๋ณด๋‹ค ํฌ๋ฏ€๋กœ, R = (i*2) + (j-2) *2 ์ผ๋• L์˜ ๊ฐ’์ด i, W์˜ ๊ฐ’์ด j๊ฐ€๋˜๊ณ  ๋ฐ˜๋Œ€๋กœ๋Š” ๋ฐ˜๋Œ€๊ฐ’์ด๋‹ค.

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€