๐
2025-10-20
๋ฌธ์ ๋งํฌ
๋ฌธ์ ์ค๋ช
๊ฐ๋ก ๊ธธ์ด๊ฐ Wcm, ์ธ๋ก ๊ธธ์ด๊ฐ Hcm์ธ ์ง์ฌ๊ฐํ ์ข
์ด๊ฐ ์์ต๋๋ค. ์ข
์ด์๋ ๊ฐ๋ก, ์ธ๋ก ๋ฐฉํฅ๊ณผ ํํํ๊ฒ ๊ฒฉ์ ํํ๋ก ์ ์ด ๊ทธ์ด์ ธ ์์ผ๋ฉฐ, ๋ชจ๋ ๊ฒฉ์์นธ์ 1cm x 1cm ํฌ๊ธฐ์
๋๋ค. ์ด ์ข
์ด๋ฅผ ๊ฒฉ์ ์ ์ ๋ฐ๋ผ 1cm ร 1cm์ ์ ์ฌ๊ฐํ์ผ๋ก ์๋ผ ์ฌ์ฉํ ์์ ์ด์๋๋ฐ, ๋๊ตฐ๊ฐ๊ฐ ์ด ์ข
์ด๋ฅผ ๋๊ฐ์ ๊ผญ์ง์ 2๊ฐ๋ฅผ ์๋ ๋ฐฉํฅ์ผ๋ก ์๋ผ ๋์์ต๋๋ค. ๊ทธ๋ฌ๋ฏ๋ก ํ์ฌ ์ง์ฌ๊ฐํ ์ข
์ด๋ ํฌ๊ธฐ๊ฐ ๊ฐ์ ์ง๊ฐ์ผ๊ฐํ 2๊ฐ๋ก ๋๋์ด์ง ์ํ์
๋๋ค. ์๋ก์ด ์ข
์ด๋ฅผ ๊ตฌํ ์ ์๋ ์ํ์ด๊ธฐ ๋๋ฌธ์, ์ด ์ข
์ด์์ ์๋ ์ข
์ด์ ๊ฐ๋ก, ์ธ๋ก ๋ฐฉํฅ๊ณผ ํํํ๊ฒ 1cm ร 1cm๋ก ์๋ผ ์ฌ์ฉํ ์ ์๋ ๋งํผ๋ง ์ฌ์ฉํ๊ธฐ๋ก ํ์์ต๋๋ค.
๊ฐ๋ก์ ๊ธธ์ด W์ ์ธ๋ก์ ๊ธธ์ด H๊ฐ ์ฃผ์ด์ง ๋, ์ฌ์ฉํ ์ ์๋ ์ ์ฌ๊ฐํ์ ๊ฐ์๋ฅผ ๊ตฌํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ์ฌํญ
W, H : 1์ต ์ดํ์ ์์ฐ์
์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ผ๋ก ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๊ณ ์ ์ฒด ์ฌ๊ฐํ์์ ๋๊ฐ์ ์ด ์ง๋๋ ์ฌ๊ฐํ์ ๊ฐ์๋ฅผ ๋บ๋ค.
๋๊ฐ์ ์ด ์ง๋๋ ์ฌ๊ฐํ์ ์
W + H - ์ต๋๊ณต์ฝ์
-> ๋๊ฐ์ ์ด 0,0 ์์ W,H๋ก ์ด๋ํ๋ค๊ณ ๋ณผ ๋ ๋๊ฐ์ ์ ์ค๋ฅธ์ชฝ์ผ๋ก W๋ฒ ์ด๋ + ์๋ก H๋ฒ ์ด๋ํ๋ค. ํ์ง๋ง ๊ฒฉ์์ ์ ์ง๋๋ ๊ฒฝ์ฐ ์ค๋ฅธ์ชฝ ์ด๋๊ณผ ์์ชฝ ์ด๋์ด ์ค๋ณต๋๋ฏ๋ก ์ด ๊ฒฝ์ฐ๋ฅผ ํ ๋ฒ ๋นผ์ผ ํ๋ค. ๋๊ฐ์ ์ด ์ง๋๊ฐ๋ ๊ฒฉ์์ ์ ๊ฐ์ = ์ต๋๊ณต์ฝ์ ์ด๋ฏ๋ก ์ต์ข
์ ์ผ๋ก ๋๊ฐ์ ์ด ์ง๋๋ ์ฌ๊ฐํ์ ์๋ W + H - ์ต๋๊ณต์ฝ์ ๊ฐ ๋๋ค.
using namespace std;
int getGcd(int a, int b)
{
if(b==0)
{
return a;
}
return getGcd(b, a % b);
}
long long solution(int w,int h) {
long long answer = (long long)w * h;
int gcd = getGcd(w, h);
long long count = (long long)w + h - gcd;
return answer - count;
}
์ฝ๋์นดํ ๋งค์ผ ํ๊ธฐ
์ถ์ฒ ํ๋ก๊ทธ๋๋จธ์ค: ๋ฉ์ฉกํ ์ฌ๊ฐํ