๐ ๋ฌธ์ ์ค๋ช
ํ๋ฉด์ ๋ค ๊ฐ์ ์ง์ฌ๊ฐํ์ด ๋์ฌ ์๋๋ฐ ๊ทธ ๋ฐ๋ณ์ ๋ชจ๋ ๊ฐ๋ก์ถ์ ํํํ๋ค. ์ด ๋ค ๊ฐ์ ์ง์ฌ๊ฐํ๋ค์ ์๋ก ๋จ์ด์ ธ ์์ ์๋ ์๊ณ , ๊ฒน์ณ ์์ ์๋ ์๊ณ , ํ๋๊ฐ ๋ค๋ฅธ ํ๋๋ฅผ ํฌํจํ ์๋ ์์ผ๋ฉฐ, ๋ณ์ด๋ ๊ผญ์ง์ ์ด ๊ฒน์น ์๋ ์๋ค.
์ด ์ง์ฌ๊ฐํ๋ค์ด ์ฐจ์งํ๋ ๋ฉด์ ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.

โจ๏ธ ์ ๋ ฅ
์ ๋ ฅ์ ๋ค ์ค์ด๋ฉฐ, ๊ฐ ์ค์ ์ง์ฌ๊ฐํ์ ์์น๋ฅผ ๋ํ๋ด๋ ๋ค ๊ฐ์ ์ ์๋ก ์ฃผ์ด์ง๋ค. ์ฒซ ๋ฒ์งธ์ ๋ ๋ฒ์งธ์ ์ ์๋ ์ฌ๊ฐํ์ ์ผ์ชฝ ์๋ ๊ผญ์ง์ ์ x์ขํ, y์ขํ์ด๊ณ ์ธ ๋ฒ์งธ์ ๋ค ๋ฒ์งธ์ ์ ์๋ ์ฌ๊ฐํ์ ์ค๋ฅธ์ชฝ ์ ๊ผญ์ง์ ์ x์ขํ, y์ขํ์ด๋ค. ๋ชจ๋ x์ขํ์ y์ขํ๋ 1์ด์์ด๊ณ 100์ดํ์ธ ์ ์์ด๋ค.
๐ฅ๏ธ ์ถ๋ ฅ
์ฒซ ์ค์ ๋ค๊ฐ์ ์ง์ฌ๊ฐํ์ด ์ฐจ์งํ๋ ๋ฉด์ ์ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ ์์ 1 :
1 2 4 4
2 3 5 7
3 1 6 5
7 3 8 6
์ถ๋ ฅ ์์ 1 :
26
๐ ๋ฌธ์ ํ์ด
๋ฒ์จ ๋ค๋ฒ์งธ ๋ฌธ์ ๋ฅผ ํ์ด์ ์ฌ๋ฆฌ๊ฒ ๋์๋๋ฐ, ์๊ฐ๋ณด๋ค ๋ฐฑ์ค์ ์ ์ ํ๋ฆฌ๋ ๊ฒ ๊ฐ์๋ฐ swea ํ๋ ค๋๊น ์ข ์ด๋ ค์์ ๋งํ๋ค. ๋ฐฑ์ค ๋น ๋ฅด๊ฒ ํ๊ณ swea๋ฅผ ํ์ด๋ด์ผ๊ฒ ๋ค๊ณ ์๊ฐ์ด ๋ค์๋ค. ๋ค์์ ๋๋ก ์ ํ๋ค ๐
์ฐ์ ๋์ ์ด๋ฒ ๋ฌธ์ ํ์ด ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
1. StringTokenizer๋ฅผ ์ฌ์ฉํด 4๊ฐ์ ์ซ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค.
2. for๋ฌธ์ ์ด์ฉํด ๋ฐฐ์ด์ ๋ฉด์ ์ ํด๋นํ๋ ๊ฐ๋ค์ 1๋ก ๋ฐ๊ฟ์ค๋ค.
3. ๋ฉด์ ์ ํด๋นํ๋ ๋ฐฐ์ด ๊ฐ๋ค์ 1๋ก ์ง์ ํด์ฃผ์๊ธฐ ๋๋ฌธ์ sum์ ๊ทธ๋๋ก ๋ํด์ค๋ค.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int sum = 0;
int[][] xy = new int[100][100];
StringTokenizer st;
for (int i = 0; i < 4; i++) {
// ์ฌ๋ฌ๋ฒ ์ด๊ธฐํ๋ ์ ์๋ StringTokenizer๋ฅผ ๋ฐ์์ ์ ์ธํด์ค๋ค.
st = new StringTokenizer(br.readLine());
// ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋๋ ๋ค๊ฐ์ง ์ซ์๋ฅผ ์ฝ์ด ์ขํ๊ฐ์ ์ง์ ํ๋ค.
int x1 = Integer.parseInt(st.nextToken());
int y1 = Integer.parseInt(st.nextToken());
int x2 = Integer.parseInt(st.nextToken());
int y2 = Integer.parseInt(st.nextToken());
// ํด๋น ์ขํ ๊ฐ๋งํผ ๋๋ฉด์ 0์ผ๋ก ์ด๊ธฐํ๋์ด ์๋ ๊ฐ๋ค์ 1๋ก ๋ฐ๊ฟ์ค๋ค.
for (int x = x1; x < x2; x++) {
for (int y = y1; y < y2; y++) {
xy[x][y] = 1;
}
}
}
// 2์ฐจ์ ๋ฐฐ์ด์ ๊ฐ์ sum์ ๋ฃ์ด์ค๋ค. (1 or 0)
for (int x = 0; x < 100; x++) {
for (int y = 0; y < 100; y++) {
sum += xy[x][y];
}
}
System.out.println(sum);
}
}
๐คญ ์ค๋์ ๋๋์ !!!
ํญ์ ๋ก์ง ๊ธ๋ฐฉ ์ง๊ณ ์ด์ํ๋ฐ์ ์ค์ํด์ ํ๋ฆฌ๋ ๋ โฆ
for๋ฌธ ์ฌ์ฉํ ๋ x < x2์ธ๋ฐ ๊ทธ๊ฑฐ๋ฅผ x โค x2๋ผ๊ณ ์ ์ด์ ํ๋ฆผ ;;;
'๐ algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ ๋ฌธ์ ์ค๋ช
ํ๋ฉด์ ๋ค ๊ฐ์ ์ง์ฌ๊ฐํ์ด ๋์ฌ ์๋๋ฐ ๊ทธ ๋ฐ๋ณ์ ๋ชจ๋ ๊ฐ๋ก์ถ์ ํํํ๋ค. ์ด ๋ค ๊ฐ์ ์ง์ฌ๊ฐํ๋ค์ ์๋ก ๋จ์ด์ ธ ์์ ์๋ ์๊ณ , ๊ฒน์ณ ์์ ์๋ ์๊ณ , ํ๋๊ฐ ๋ค๋ฅธ ํ๋๋ฅผ ํฌํจํ ์๋ ์์ผ๋ฉฐ, ๋ณ์ด๋ ๊ผญ์ง์ ์ด ๊ฒน์น ์๋ ์๋ค.
์ด ์ง์ฌ๊ฐํ๋ค์ด ์ฐจ์งํ๋ ๋ฉด์ ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.

โจ๏ธ ์ ๋ ฅ
์ ๋ ฅ์ ๋ค ์ค์ด๋ฉฐ, ๊ฐ ์ค์ ์ง์ฌ๊ฐํ์ ์์น๋ฅผ ๋ํ๋ด๋ ๋ค ๊ฐ์ ์ ์๋ก ์ฃผ์ด์ง๋ค. ์ฒซ ๋ฒ์งธ์ ๋ ๋ฒ์งธ์ ์ ์๋ ์ฌ๊ฐํ์ ์ผ์ชฝ ์๋ ๊ผญ์ง์ ์ x์ขํ, y์ขํ์ด๊ณ ์ธ ๋ฒ์งธ์ ๋ค ๋ฒ์งธ์ ์ ์๋ ์ฌ๊ฐํ์ ์ค๋ฅธ์ชฝ ์ ๊ผญ์ง์ ์ x์ขํ, y์ขํ์ด๋ค. ๋ชจ๋ x์ขํ์ y์ขํ๋ 1์ด์์ด๊ณ 100์ดํ์ธ ์ ์์ด๋ค.
๐ฅ๏ธ ์ถ๋ ฅ
์ฒซ ์ค์ ๋ค๊ฐ์ ์ง์ฌ๊ฐํ์ด ์ฐจ์งํ๋ ๋ฉด์ ์ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ ์์ 1 :
1 2 4 4
2 3 5 7
3 1 6 5
7 3 8 6
์ถ๋ ฅ ์์ 1 :
26
๐ ๋ฌธ์ ํ์ด
๋ฒ์จ ๋ค๋ฒ์งธ ๋ฌธ์ ๋ฅผ ํ์ด์ ์ฌ๋ฆฌ๊ฒ ๋์๋๋ฐ, ์๊ฐ๋ณด๋ค ๋ฐฑ์ค์ ์ ์ ํ๋ฆฌ๋ ๊ฒ ๊ฐ์๋ฐ swea ํ๋ ค๋๊น ์ข ์ด๋ ค์์ ๋งํ๋ค. ๋ฐฑ์ค ๋น ๋ฅด๊ฒ ํ๊ณ swea๋ฅผ ํ์ด๋ด์ผ๊ฒ ๋ค๊ณ ์๊ฐ์ด ๋ค์๋ค. ๋ค์์ ๋๋ก ์ ํ๋ค ๐
์ฐ์ ๋์ ์ด๋ฒ ๋ฌธ์ ํ์ด ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ๋ค.
1. StringTokenizer๋ฅผ ์ฌ์ฉํด 4๊ฐ์ ์ซ์๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค.
2. for๋ฌธ์ ์ด์ฉํด ๋ฐฐ์ด์ ๋ฉด์ ์ ํด๋นํ๋ ๊ฐ๋ค์ 1๋ก ๋ฐ๊ฟ์ค๋ค.
3. ๋ฉด์ ์ ํด๋นํ๋ ๋ฐฐ์ด ๊ฐ๋ค์ 1๋ก ์ง์ ํด์ฃผ์๊ธฐ ๋๋ฌธ์ sum์ ๊ทธ๋๋ก ๋ํด์ค๋ค.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int sum = 0;
int[][] xy = new int[100][100];
StringTokenizer st;
for (int i = 0; i < 4; i++) {
// ์ฌ๋ฌ๋ฒ ์ด๊ธฐํ๋ ์ ์๋ StringTokenizer๋ฅผ ๋ฐ์์ ์ ์ธํด์ค๋ค.
st = new StringTokenizer(br.readLine());
// ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋๋ ๋ค๊ฐ์ง ์ซ์๋ฅผ ์ฝ์ด ์ขํ๊ฐ์ ์ง์ ํ๋ค.
int x1 = Integer.parseInt(st.nextToken());
int y1 = Integer.parseInt(st.nextToken());
int x2 = Integer.parseInt(st.nextToken());
int y2 = Integer.parseInt(st.nextToken());
// ํด๋น ์ขํ ๊ฐ๋งํผ ๋๋ฉด์ 0์ผ๋ก ์ด๊ธฐํ๋์ด ์๋ ๊ฐ๋ค์ 1๋ก ๋ฐ๊ฟ์ค๋ค.
for (int x = x1; x < x2; x++) {
for (int y = y1; y < y2; y++) {
xy[x][y] = 1;
}
}
}
// 2์ฐจ์ ๋ฐฐ์ด์ ๊ฐ์ sum์ ๋ฃ์ด์ค๋ค. (1 or 0)
for (int x = 0; x < 100; x++) {
for (int y = 0; y < 100; y++) {
sum += xy[x][y];
}
}
System.out.println(sum);
}
}
๐คญ ์ค๋์ ๋๋์ !!!
ํญ์ ๋ก์ง ๊ธ๋ฐฉ ์ง๊ณ ์ด์ํ๋ฐ์ ์ค์ํด์ ํ๋ฆฌ๋ ๋ โฆ
for๋ฌธ ์ฌ์ฉํ ๋ x < x2์ธ๋ฐ ๊ทธ๊ฑฐ๋ฅผ x โค x2๋ผ๊ณ ์ ์ด์ ํ๋ฆผ ;;;