๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

[SWEA] 8382. ๋ฐฉํ–ฅ ์ „ํ™˜ - Java

category Algorithm/SWEA 2022. 11. 14. 21:48

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWyNQrCahHcDFAVP 

 

SW Expert Academy

SW ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ญ๋Ÿ‰ ๊ฐ•ํ™”์— ๋„์›€์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ•™์Šต ์ปจํ…์ธ ๋ฅผ ํ™•์ธํ•˜์„ธ์š”!

swexpertacademy.com


1. ๋ฌธ์ œ ์š”์•ฝ

x1, y1์—์„œ x2,y2๋กœ ๊ฐ€๋ ค๊ณ  ํ•œ๋‹ค.

์ด์ „์— ๊ฐ€๋กœ๋กœ ์ด๋™ํ–ˆ๋‹ค๋ฉด ์ด๋ฒˆ์—” ์„ธ๋กœ๋กœ ์ด๋™ํ•ด์•ผ ํ•˜๊ณ ,

์ด์ „์— ์„ธ๋กœ๋กœ ์ด๋™ํ–ˆ๋‹ค๋ฉด ์ด๋ฒˆ์—” ๊ฐ€๋กœ๋กœ ์ด๋™ํ•ด์•ผ ํ•œ๋‹ค.

์ด๋™ํšŸ์ˆ˜๊ฐ€ ์ตœ์†Œ๊ฐ€ ๋  ๋•Œ์˜ ์ด๋™ ํšŸ์ˆ˜๊ฐ€ ๋‹ต์ด ๋œ๋‹ค.

 

2. ํ’€์ด

์ˆ˜ํ•™, BFS ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์–ด๋ณด์•˜๋‹ค.

1) ์ˆ˜ํ•™

๊ทœ์น™์œผ๋กœ ํ’€์—ˆ๋‹ค.

if (๊ฐ€๋กœ ์ฐจ์ด) == (์„ธ๋กœ ์ฐจ์ด) ๋ผ๋ฉด,  ans = ๊ฐ€๋กœ ์ฐจ์ด + ์„ธ๋กœ ์ฐจ์ด

if (๊ฐ€๋กœ ์ฐจ์ด) > (์„ธ๋กœ ์ฐจ์ด) ์ผ ๋•Œ,

        ๊ฐ€๋กœ ์ฐจ์ด๊ฐ€ ์ง์ˆ˜๋ผ๋ฉด, ans = ๊ฐ€๋กœ์ฐจ์ด + ๊ฐ€๋กœ์ฐจ์ด

        ๊ฐ€๋กœ ์ฐจ์ด๊ฐ€ ํ™€์ˆ˜๋ผ๋ฉด, ans = ๊ฐ€๋กœ์ฐจ์ด + (๊ฐ€๋กœ์ฐจ์ด-1)

if (๊ฐ€๋กœ ์ฐจ์ด) < (์„ธ๋กœ ์ฐจ์ด) ์ผ ๋•Œ,  ans = ๊ฐ€๋กœ ์ฐจ์ด + ์„ธ๋กœ ์ฐจ์ด

        ์„ธ๋กœ ์ฐจ์ด๊ฐ€ ์ง์ˆ˜๋ผ๋ฉด, ans = ์„ธ๋กœ์ฐจ์ด + ์„ธ๋กœ์ฐจ์ด

        ์„ธ๋กœ ์ฐจ์ด๊ฐ€ ํ™€์ˆ˜๋ผ๋ฉด, ans = ์„ธ๋กœ์ฐจ์ด + (์„ธ๋กœ์ฐจ์ด-1)

if (๊ฐ€๋กœ ์ฐจ์ด) == 0 ๋ผ๋ฉด,  ans = ๊ฐ€๋กœ ์ฐจ์ด + ์„ธ๋กœ ์ฐจ์ด

if (์„ธ๋กœ ์ฐจ์ด) == 0 ๋ผ๋ฉด,  ans = ๊ฐ€๋กœ ์ฐจ์ด + ์„ธ๋กœ ์ฐจ์ด

 

 

2) BFS

 

 

3. ์ฝ”๋“œ

์ˆ˜ํ•™

๋”๋ณด๊ธฐ
package a22_11_14;

import java.io.*;
import java.util.*;

public class SW_8382_๋ฐฉํ–ฅ์ „ํ™˜ {

	static int sy, sx, ey, ex, ans;
	
	static int[] dy = {-1,1,0,0};
	static int[] dx = {0,0,-1,1};
	
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int T = Integer.parseInt(br.readLine());
		for (int tc = 1; tc<=T; tc++) {
			StringTokenizer st = new StringTokenizer(br.readLine());
			sy = Integer.parseInt(st.nextToken());
			sx = Integer.parseInt(st.nextToken());
			ey = Integer.parseInt(st.nextToken());
			ex = Integer.parseInt(st.nextToken());

			ans = 0;
			solution();
			System.out.println("#"+tc+" "+ans);
		}
	}
	
	static void solution() {
		int yGap = Math.abs(ey-sy);
		int xGap = Math.abs(ex-sx);
		if (yGap == 0) {
			for (int i=1; i<=xGap; i++) {
				if (i%2==0) ans+=3;
				else ans+=1;
			}
		} else if (xGap == 0) {
			for (int i=1; i<=yGap; i++) {
				if (i%2==0) ans+=3;
				else ans+=1;
			}
		} else {
			if (xGap > yGap) {
				if ((xGap+yGap) % 2 == 0) {
					ans = xGap+xGap;
				}
				else {
					ans = xGap+xGap-1;
				}
			} else if (xGap < yGap) {
				if ((xGap+yGap) % 2 == 0) {
					ans = yGap+yGap;
				}
				else {
					ans = yGap+yGap-1;
				}
			}else {
				ans = yGap+xGap;
			}
		}
	}
}

BFS

 

4. ์‚ฌ๋‹ด