์ง์ฌ๊ฐํ ๋์ด ๊ตฌํ๊ธฐ - Java [ํ๋ก๊ทธ๋๋จธ์ค ์ ๋ฌธ]
โค๏ธ Problem
- ๋ฌธ์
2์ฐจ์ ์ขํ ํ๋ฉด์ ๋ณ์ด ์ถ๊ณผ ํํํ ์ง์ฌ๊ฐํ์ด ์์ต๋๋ค. ์ง์ฌ๊ฐํ ๋ค ๊ผญ์ง์ ์ ์ขํ [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]๊ฐ ๋ด๊ฒจ์๋ ๋ฐฐ์ด dots๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ง์ฌ๊ฐํ์ ๋์ด๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์.
- ์ ํ ์ฌํญ
- dots์ ๊ธธ์ด = 4
- dots์ ์์์ ๊ธธ์ด = 2
- -256 < dots[i]์ ์์ < 256
- ์๋ชป๋ ์ ๋ ฅ์ ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- ์ ์ถ๋ ฅ ์ & ์ค๋ช
no | dots | result |
1 | [[1, 1], [2, 1], [2, 2], [1, 2]] | 1 |
2 | [[-1, -1], [1, 1], [1, -1], [-1, 1]] | 4 |
- ์ขํ [[1, 1], [2, 1], [2, 2], [1, 2]] ๋ฅผ ๊ผญ์ง์ ์ผ๋ก ๊ฐ๋ ์ง์ฌ๊ฐํ์ ๊ฐ๋ก, ์ธ๋ก ๊ธธ์ด๋ ๊ฐ๊ฐ 1, 1์ด๋ฏ๋ก ์ง์ฌ๊ฐํ์ ๋์ด๋ 1 x 1 = 1์ ๋๋ค.
- ์ขํ [[-1, -1], [1, 1], [1, -1], [-1, 1]]๋ฅผ ๊ผญ์ง์ ์ผ๋ก ๊ฐ๋ ์ง์ฌ๊ฐํ์ ๊ฐ๋ก, ์ธ๋ก ๊ธธ์ด๋ ๊ฐ๊ฐ 2, 2์ด๋ฏ๋ก ์ง์ฌ๊ฐํ์ ๋์ด๋ 2 x 2 = 4์ ๋๋ค.
๐ Solution
ํ์ด
class Solution {
public int solution(int[][] dots) {
int x = dots[0][0];
int y = dots[0][1];
int width = 0;
int height = 0;
for (int i=1; i<dots.length; i++) {
if (x != dots[i][0]) {
width = Math.abs(x - dots[i][0]);
}
if (y != dots[i][1]) {
height = Math.abs(y - dots[i][1]);
}
}
return width*height;
}
}
์ฒ๋ฆฌ์๋ VERY GOOD
๐ Comment
์ด ๋ฌธ์ ๋ ์ ์ถ๋ ฅ ์๋ง ๋ณด๊ณ ์ฝ๋ฉ์ ํ๋ค๊ฐ, ๋ง์ ์ ์ถํ๋ ์คํจ๊ฐ ์ฐ๋ฅด๋ฅด ๋ด๋ ๋ฌธ์ ์ด๋ค. ์์์์๋ ๋ง์น dots[0]๊ณผ dots[2]๋ง ํ์ฉํ๋ฉด ๊ฐ๋ก ๋ฐ ์ธ๋ก ๊ฐ์ ๊ตฌํ ์ ์์ ๊ฒ์ฒ๋ผ ๋ณด์๋ค.
ํ์ง๋ง ์๊ฐํด๋ณด๋, ๊ฒฐ๊ตญ ๋ชจ๋ ์ขํ์ ์์น๋ฅผ ์์์ผ x์ขํ์ y์ขํ์ ์ฐจ์ด๋ฅผ ๊ฐ๊ฐ ๊ตฌํ ์ ์์๋ค.
๋๋ ๊ธฐ์ค์ ์ผ๋ก x์ถ ๊ฐ(dots[0][0])์ y์ถ ๊ฐ(dots[0][1])๋ฅผ ์ค์ ํ๋ค. ๊ทธ๋ฐ ๋ค์์ for๋ฌธ์ ์์ฑํ์ฌ ๊ฐ ๊ธฐ์ค์ ๊ณผ ๊ฐ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ง ๊ฐ ๊ธฐ์ค๊ฐ์์ ๊ฐ์ด ๋ค๋ฅธ ์ขํ๋ค์ ๋บ ๋ค ๊ฐ๊ฐ ๊ฐ๋ก๊ฐ(width)์ ์ธ๋ก๊ฐ(height)๋ก ์ค์ ํ์๋ค. (width = x - dots[i][0], height = y - dots[i][1])
๊ณ์ฐ์ ์ํด width์ height๋ ์ ๋๊ฐ์ผ๋ก ์ฐ์ถํ์๊ณ , ๋ง์ง๋ง์๋ ๋์ด๋ฅผ ๊ตฌํ๊ธฐ ์ํด width์ height๋ฅผ ๊ณฑํ์๋ค.
ํ๊ต ๋ค๋ ๋์๋ ์ขํํ๋ฉด์ ๊ทธ๋ ๊ฒ ์ด๋ ค์ํ๋๋ฐ.. ์ง๊ธ๋ ๋๋ฌด ์ด๋ ต๋ค๐ฅ๐ฅ
์ฝ๋ฉ์ ํ๋ฉด์ ๋๋์ฑ ๋๋ผ๋ ๋ถ๋ถ์ธ๋ฐ, ๊ธฐ์ด ์ํ์ ๊ณต๋ถํ ํ์์ฑ์ ๋๋๋ค.