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. ์ฌ๋ด
'Algorithm > SWEA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SWEA] 4727. ๊ฒฌ์ฐ์ ์ง๋ (18.8.6 ์์ ) - Java (0) | 2022.11.20 |
---|---|
[SWEA] 2819. ๊ฒฉ์ํ์ ์ซ์ ์ด์ด ๋ถ์ด๊ธฐ (1) | 2022.11.20 |
[SWEA] 1824. ํ์ง์ด์ ํ๋ก๊ทธ๋จ ๊ฒ์ฆ - Java (0) | 2022.11.14 |
[SWEA] 1486. ์ฅํ์ด์ ๋์ ์ ๋ฐ - Java (0) | 2022.11.13 |
[SWEA] 1868. ํํํํ ์ง๋ขฐ์ฐพ๊ธฐ - Java (0) | 2022.11.13 |