๋ฌธ์ ์ค๋ช
https://school.programmers.co.kr/learn/courses/30/lessons/86491
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
๋ช
ํจ ์ง๊ฐ์ ๋ง๋๋ ํ์ฌ์์ ์ง๊ฐ์ ํฌ๊ธฐ๋ฅผ ์ ํ๋ ค๊ณ ํฉ๋๋ค. ๋ค์ํ ๋ชจ์๊ณผ ํฌ๊ธฐ์ ๋ช
ํจ๋ค์ ๋ชจ๋ ์๋ฉํ ์ ์์ผ๋ฉด์, ์์์ ๋ค๊ณ ๋ค๋๊ธฐ ํธํ ์ง๊ฐ์ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์๊ฑด์ ๋ง์กฑํ๋ ์ง๊ฐ์ ๋ง๋ค๊ธฐ ์ํด ๋์์ธํ์ ๋ชจ๋ ๋ช
ํจ์ ๊ฐ๋ก ๊ธธ์ด์ ์ธ๋ก ๊ธธ์ด๋ฅผ ์กฐ์ฌํ์ต๋๋ค.
์๋ ํ๋ 4๊ฐ์ง ๋ช
ํจ์ ๊ฐ๋ก ๊ธธ์ด์ ์ธ๋ก ๊ธธ์ด๋ฅผ ๋ํ๋
๋๋ค.
๋ช ํจ ๋ฒํธ | ๊ฐ๋ก ๊ธธ์ด | ์ธ๋ก ๊ธธ์ด |
1 | 60 | 50 |
2 | 30 | 70 |
3 | 60 | 30 |
4 | 80 | 40 |
๊ฐ์ฅ ๊ธด ๊ฐ๋ก ๊ธธ์ด์ ์ธ๋ก ๊ธธ์ด๊ฐ ๊ฐ๊ฐ 80, 70์ด๊ธฐ ๋๋ฌธ์ 80(๊ฐ๋ก) x 70(์ธ๋ก) ํฌ๊ธฐ์ ์ง๊ฐ์ ๋ง๋ค๋ฉด ๋ชจ๋ ๋ช
ํจ๋ค์ ์๋ฉํ ์ ์์ต๋๋ค. ํ์ง๋ง 2๋ฒ ๋ช
ํจ์ ๊ฐ๋ก๋ก ๋ํ ์๋ฉํ๋ค๋ฉด 80(๊ฐ๋ก) x 50(์ธ๋ก) ํฌ๊ธฐ์ ์ง๊ฐ์ผ๋ก ๋ชจ๋ ๋ช
ํจ๋ค์ ์๋ฉํ ์ ์์ต๋๋ค. ์ด๋์ ์ง๊ฐ ํฌ๊ธฐ๋ 4000(=80 x 50)์
๋๋ค.
๋ชจ๋ ๋ช
ํจ์ ๊ฐ๋ก ๊ธธ์ด์ ์ธ๋ก ๊ธธ์ด๋ฅผ ๋ํ๋ด๋ 2์ฐจ์ ๋ฐฐ์ด sizes๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ๋ชจ๋ ๋ช
ํจ์ ์๋ฉํ ์ ์๋ ๊ฐ์ฅ ์์ ์ง๊ฐ์ ๋ง๋ค ๋, ์ง๊ฐ์ ํฌ๊ธฐ๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- sizes์ ๊ธธ์ด๋ 1 ์ด์ 10,000 ์ดํ์
๋๋ค.
- sizes์ ์์๋ [w, h] ํ์์ ๋๋ค.
- w๋ ๋ช ํจ์ ๊ฐ๋ก ๊ธธ์ด๋ฅผ ๋ํ๋ ๋๋ค.
- h๋ ๋ช ํจ์ ์ธ๋ก ๊ธธ์ด๋ฅผ ๋ํ๋ ๋๋ค.
- w์ h๋ 1 ์ด์ 1,000 ์ดํ์ธ ์์ฐ์์ ๋๋ค.
์ ์ถ๋ ฅ ์
sizes | result |
[[60, 50], [30, 70], [60, 30], [80, 40]] | 4000 |
[[10, 7], [12, 3], [8,15], [14, 7], [5, 15]] | 120 |
[[14, 4,], [19, 6], [6, 16], [18, 7], [7, 11]] | 133 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- ๋ฌธ์ ์์์ ๊ฐ์ต๋๋ค.
์ ์ถ๋ ฅ ์ #2
- ๋ช ํจ๋ค์ ์ ์ ํ ํ์ ์์ผ ๊ฒน์ณค์ ๋, 3๋ฒ์งธ ๋ช ํจ(๊ฐ๋ก:8, ์ธ๋ก:15)์ด ๋ค๋ฅธ ๋ชจ๋ ๋ช ํจ๋ณด๋ค ํฌ๊ธฐ๊ฐ ํฝ๋๋ค. ๋ฐ๋ผ์ ์ง๊ฐ์ ํฌ๊ธฐ๋ 3๋ฒ์งธ ๋ช ํจ์ ํฌ๊ธฐ์ ๊ฐ์ผ๋ฉฐ, 120(=8 × 15)์ returnํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #3
- ๋ช ํจ๋ค์ ์ ์ ํ ํ์ ์์ผ ๊ฒน์ณค์ ๋, ๋ชจ๋ ๋ช ํจ์ ํฌํจํ๋ ๊ฐ์ฅ ์์ ์ง๊ฐ์ ํฌ๊ธฐ๋ 133(= 19 × 7)์ ๋๋ค.
๋ด๊ฐ ์์ฑํ ์ฝ๋
class Solution {
public int solution(int[][] sizes) {
int answer = 0;
int width = 0;
int height = 0;
for (int i = 0; i < sizes.length; i++) {
if (sizes[i][0] < sizes[i][1]) {
int temp = sizes[i][0];
sizes[i][0] = sizes[i][1];
sizes[i][1] = temp;
}
if (sizes[i][0] > width) {
width = sizes[i][0];
}
if (sizes[i][1] > height) {
height = sizes[i][1];
}
}
answer = width * height;
return answer;
}
}
์ฝ๋ ์ค๋ช
- int answer = 0 : ์ต์ ์ง๊ฐ ํฌ๊ธฐ๋ฅผ ์ ์ฅํ ๋ณ์ answer๋ฅผ ์์ฑํ๊ณ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
- int width = 0, int height = 0 : ์ง๊ฐ์ ๊ฐ๋ก(width)์ ์ธ๋ก(height) ํฌ๊ธฐ๋ฅผ ์ ์ฅํ๊ธฐ ์ํด ๋ณ์๋ฅผ ์์ฑํ๊ณ ๊ฐ๊ฐ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
- for (int i = 0; i < sizes.length; i++) { } : ๋ฐฐ์ด sizes๋ฅผ ์ํํ๊ธฐ ์ํด ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ์ฌ, ๋ช
ํจ์ ๊ฐ ๊ฐ๋ก์ ์ธ๋ก ํฌ๊ธฐ๋ฅผ ๋น๊ตํ๊ณ ์ต๋ ํฌ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค. i๋ 0๋ถํฐ ์์ํด์ size.length๋ณด๋ค ์์ ๋๊น์ง ์ฆ๊ฐํ๋ค.
- if (sizes[i][0] < sizes[i][1]) { } : ๊ฐ ๋ช ํจ์ ๊ฐ๋ก(size[i][0]) ์ ์ธ๋ก(sizes[i][1])๋ฅผ ๋น๊ตํ์ฌ ๊ฐ๋ก๊ฐ ์ธ๋ก๋ณด๋ค ์์ ๊ฒฝ์ฐ ๋ช ํจ์ ํ์ ํ๋ค.
- if (sizes[i][0] > width) { width = size[i][0] } : ๊ฐ๋ก์ ๊ธธ์ด(sizes[i][0])๊ฐ ํ์ฌ width๋ณด๋ค ํฌ๋ค๋ฉด, width๋ฅผ ํด๋น ๊ฐ์ผ๋ก ๋ณ๊ฒฝํ๋ค.
- if (sizes[i][1] > height) { height = size[i][1] } : ์ธ๋ก์ ๊ธธ์ด(sizes[i][1])๊ฐ ํ์ฌ height๋ณด๋ค ํฌ๋ค๋ฉด, height๋ฅผ ํด๋น ๊ฐ์ผ๋ก ๋ณ๊ฒฝํ๋ค.
- answer = width * height : ๋ชจ๋ ๋ช ํจ์ ๋ด์ ์ ์๋ ์ง๊ฐ์ ํฌ๊ธฐ๋ฅผ ๊ฐ๋ก(width)์ ์ธ๋ก(height)์ ๊ณฑ์ผ๋ก ๊ณ์ฐํ์ฌ answer์ ์ ์ฅํ๋ค.
'๐งฉ ํ๋ก๊ทธ๋๋จธ์ค > ์๊ณ ๋ฆฌ์ฆ ํ์ด(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค_๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ (0) | 2024.12.03 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค_์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (0) | 2024.12.02 |
ํ๋ก๊ทธ๋๋จธ์ค_ํฌ๊ธฐ๊ฐ ์์ ๋ถ๋ถ ๋ฌธ์์ด (0) | 2024.11.29 |
ํ๋ก๊ทธ๋๋จธ์ค_์ผ์ด์ฌ (0) | 2024.11.27 |
ํ๋ก๊ทธ๋๋จธ์ค_์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ (0) | 2024.11.26 |