์ง์ฌ๊ฐํ ๋์ด ๊ตฌํ๊ธฐ ๐
Q. 2์ฐจ์ ์ขํ ํ๋ฉด์ ๋ณ์ด ์ถ๊ณผ ํํํ ์ง์ฌ๊ฐํ์ด ์์ต๋๋ค. ์ง์ฌ๊ฐํ ๋ค ๊ผญ์ง์ ์ ์ขํ [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]๊ฐ
๋ด๊ฒจ์๋ ๋ฐฐ์ด `dots`๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ง์ฌ๊ฐํ์ ๋์ด๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์.
์ ํ์ฌํญ
- `dots`์ ๊ธธ์ด = 4
- `dots`์ ์์์ ๊ธธ์ด = 2
- -256 < `dots[i]`์ ์์ < 256
- ์๋ชป๋ ์ ๋ ฅ์ ์ฃผ์ด์ง์ง ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
dots | result |
[[1, 1], [2, 1], [2, 2], [1, 2]] | 1 |
[[-1, -1], [1, 1], [1, -1], [-1, 1]] | 4 |
A.
def solution(dots):
x_values = [x for x, y in dots]
y_values = [y for x, y in dots]
width = max(x_values) - min(x_values)
height = max(y_values) - min(y_values)
return width * height
โ ๋ฌธ์ ์์ฝ
- `dots`๋ 2์ฐจ์ ํ๋ฉด์ ๋ค ๊ฐ์ ์ ์ขํ๋ฅผ ๋ด์ ๋ฆฌ์คํธ์ ๋๋ค.
- ์ด ๋ค ์ ์ ๋ฐ๋์ ๋ณ์ด x์ถ ๋๋ y์ถ์ ํํํ ์ง์ฌ๊ฐํ์ ๊ผญ์ง์ ์ ๋๋ค.
- ๋ชฉํ: ์ด ์ง์ฌ๊ฐํ์ ๋์ด๋ฅผ ๊ตฌํ๋ ํจ์ ์์ฑ
โ ์ฝ๋
def solution(dots):
x_values = [x for x, y in dots]
y_values = [y for x, y in dots]
width = max(x_values) - min(x_values)
height = max(y_values) - min(y_values)
return width * height
โ ๋จ๊ณ๋ณ ์ค๋ช
Step 1. x ์ขํ์ y ์ขํ ๋ถ๋ฆฌ
x_values = [x for x, y in dots]
y_values = [y for x, y in dots]
- `dots`๋ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ์ ๋๋ค:
- ์: `dots = [[1, 1], [2, 1], [2, 2], [1, 2]]`
- `x_values`์๋ `dots`์ ์ฒซ ๋ฒ์งธ ์์(x ์ขํ)๋ค๋ง ์ถ์ถํฉ๋๋ค.
x_values = [1, 2, 2, 1]
- `y_values`๋ ๋ ๋ฒ์งธ ์์(y ์ขํ)๋ค๋ง ์ถ์ถํฉ๋๋ค.
y_values = [1, 1, 2, 2]
Step 2. ๊ฐ๋ก/์ธ๋ก ๊ธธ์ด ๊ณ์ฐ
width = max(x_values) - min(x_values)
height = max(y_values) - min(y_values)
- ๊ฐ๋ก ๊ธธ์ด (width): ๊ฐ์ฅ ์ค๋ฅธ์ชฝ - ๊ฐ์ฅ ์ผ์ชฝ
- `max(x_values) = 2`, `min(x_values) = 1` → `width = 2 - 1 = 1`
- ์ธ๋ก ๊ธธ์ด (height): ๊ฐ์ฅ ์์ชฝ - ๊ฐ์ฅ ์๋์ชฝ
- `max(y_values) = 2`, `min(y_values) = 1` → `height = 2 - 1 = 1`
์ด ๋ฐฉ์์ ์ถ์ ํํํ ์ฌ๊ฐํ์ผ ๊ฒฝ์ฐ์๋ง ์ ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
๋ฌธ์ ์กฐ๊ฑด์ด “๋ณ์ด ์ถ์ ํํํ ์ง์ฌ๊ฐํ” ์ด๋ผ๊ณ ๋์ด ์์ผ๋ฏ๋ก ์์ ํฉ๋๋ค.
Step 3. ๋์ด ๊ณ์ฐ
return width * height
- ์ง์ฌ๊ฐํ์ ๋์ด = ๊ฐ๋ก × ์ธ๋ก
- ์ ์์์์๋ `1 * 1 = 1`
โ ์ต์ข ์์ฝ
์ด ํจ์๋ ๋ค์ ์์๋ก ์๋ํฉ๋๋ค:
- ์ฃผ์ด์ง ์ ๋ค์ x, y ์ขํ๋ฅผ ๊ฐ๊ฐ ๋ถ๋ฆฌ
- x ์ขํ์์ ๊ฐ๋ก ๊ธธ์ด ๊ณ์ฐ: `max - min`
- y ์ขํ์์ ์ธ๋ก ๊ธธ์ด ๊ณ์ฐ: `max - min`
- ๊ฐ๋ก * ์ธ๋ก๋ฅผ ๊ณฑํ์ฌ ๋์ด ๋ฐํ
Q. ์ `๊ฐ์ฅ ์ค๋ฅธ์ชฝ - ๊ฐ์ฅ ์ผ์ชฝ` ์ด๋์ผ ํ๋๊ฑฐ์ผ??
A. ์ข์ต๋๋ค. ์ด ์ง๋ฌธ์ “์ง์ฌ๊ฐํ์ ๋์ด๋ฅผ ๊ตฌํ ๋ ์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ - ๊ฐ์ฅ ์ผ์ชฝ์ผ๋ก ๊ฐ๋ก ๊ธธ์ด๋ฅผ ๊ตฌํ๋๊ฐ?”์ ๋ํ
์๋ฆฌ์ ์ธ ๊ถ๊ธ์ฆ์ ๋๋ค.์ ํํ๊ณ ๋ ผ๋ฆฌ์ ์ผ๋ก ์ค๋ช ๋๋ฆด๊ฒ์.
๐ 1. ์ถ์ ํํํ ์ง์ฌ๊ฐํ์ ํน์ฑ
๋ฌธ์ ์กฐ๊ฑด์ ๋ฐ๋ผ:
- ์ง์ฌ๊ฐํ์ x์ถ, y์ถ๊ณผ ํํํ ๋ฐฉํฅ์ผ๋ก ๋ณ์ด ์กด์ฌํฉ๋๋ค.
- ์ฆ, ๊ผญ์ง์ ๋ค์ด ์ด๋ ๊ฒ ์๊ฒผ๋ค๋ ๋ป์ ๋๋ค:
(์ต์ x, ์ต์ y) โโโโโ (์ต๋ x, ์ต์ y)
โ โ
โ โ
(์ต์ x, ์ต๋ y) โโโโโ (์ต๋ x, ์ต๋ y)
์ฌ๊ธฐ์ ๊ฐ ๊ผญ์ง์ ์ ์ขํ๋ ๋ค ๊ฐ ์ค ์์ฌ ์์ง๋ง, ์ฐ๋ฆฌ๊ฐ ๊ด์ฌ ์๋ ๊ฑด:
- ๊ฐ๋ก ๊ธธ์ด: ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ๊น์ง ์ผ๋ง๋ ๋์๊ฐ? → `์ต๋๊ฐ x - ์ต์๊ฐ x`
- ์ธ๋ก ๊ธธ์ด: ์๋์์ ์๊น์ง ์ผ๋ง๋ ๋์๊ฐ? → `์ต๋๊ฐ y - ์ต์๊ฐ y`
๐ 2. ์์ ๋ก ํ์ธ
dots = [[1, 1], [2, 1], [2, 2], [1, 2]]
์ขํ๋ฅผ ํ๋ฉด์ ์ฐ์ด๋ณด๋ฉด:
(1,2) โโโโโ (2,2)
โ โ
(1,1) โโโโโ (2,1)
- `x ์ขํ๋ค`: `[1, 2, 2, 1]`
- ๊ฐ์ฅ ์ค๋ฅธ์ชฝ: `max(x) = 2`
- ๊ฐ์ฅ ์ผ์ชฝ: `min(x) = 1`
- → ๊ฐ๋ก ๊ธธ์ด = `2 - 1 = 1`
- `y ์ขํ๋ค`: `[1, 1, 2, 2]`
- ๊ฐ์ฅ ์์ชฝ: `max(y) = 2`
- ๊ฐ์ฅ ์๋์ชฝ: `min(y) = 1`
- → ์ธ๋ก ๊ธธ์ด = `2 - 1 = 1`
โ ์ํ์ ์ผ๋ก ์ ๊ทธ๋ฐ๊ฐ?
์ขํ ํ๋ฉด์ ๋ค์์ฒ๋ผ ์๊ฒผ์ต๋๋ค:
- x์ถ → ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ์๋ก ์ฆ๊ฐ
- y์ถ → ์๋์์ ์๋ก ๊ฐ์๋ก ์ฆ๊ฐ
๋ฐ๋ผ์,
- x์ ์ต๋๊ฐ์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์ ์ x์ขํ
- x์ ์ต์๊ฐ์ ๊ฐ์ฅ ์ผ์ชฝ ์ ์ x์ขํ
→ `๊ฐ๋ก ๊ธธ์ด = ์ค๋ฅธ์ชฝ ๋ - ์ผ์ชฝ ๋ = max(x) - min(x)`
๐ ๋ฐ๋๋ก ํ๋ฉด?
๋ง์ฝ `min(x) - max(x)`๋ก ํ๋ค๋ฉด,
- ํญ์ ์์๊ฐ ๋์ค๊ฑฐ๋
- ์ ๋๊ฐ์ ๋ ์ทจํด์ค์ผ ํ๋ฏ๋ก ์ฝ๋๊ฐ ๋ณต์กํด์ง
๊ทธ๋์ `๊ฐ์ฅ ํฐ x - ๊ฐ์ฅ ์์ x`๊ฐ ๊ฐ์ฅ ์ง๊ด์ ์ด๊ณ ์ํ์ ์ผ๋ก๋ ์ ํํฉ๋๋ค.
๐ฏ ๊ฒฐ๋ก
“๊ฐ์ฅ ์ค๋ฅธ์ชฝ - ๊ฐ์ฅ ์ผ์ชฝ”์ด๋ ํํ์ ์ฌ์ค
x์ขํ ์ค ์ต๋๊ฐ - ์ต์๊ฐ์ ์๋ฏธํ๋ฉฐ,
์ด๋ ์ง์ฌ๊ฐํ์ ๊ฐ๋ก ๊ธธ์ด๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํ ์ ํํ ๋ฐฉ๋ฒ์ ๋๋ค.
'Algorithm ๐ > ๋ฌธ์ ํ์ด ๐ฏ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[250128] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ ๋ฌธ ๋ฌธ์ (0) | 2025.01.28 |
---|---|
[250123] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ ๋ฌธ ๋ฌธ์ (1) | 2025.01.23 |
[250117] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ ๋ฌธ ๋ฌธ์ (3) | 2025.01.17 |
[250113] ํ๋ก๊ทธ๋๋จธ์ค ๊ธฐ์ด ํธ๋ ์ด๋ ๋ฌธ์ (0) | 2025.01.13 |
[250108] ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ ์คํธ ์ ๋ฌธ ๋ฌธ์ (0) | 2025.01.08 |