๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“– Algorithm/์ฝ”๋”ฉํ…Œ์ŠคํŠธ

2022.06.14 ใ€ŒLv.2 ๋ฉ€์ฉกํ•œ ์‚ฌ๊ฐํ˜•ใ€

by GroovyArea 2022. 6. 14.

๋ฌธ์ œ ์„ค๋ช…

๊ฐ€๋กœ๊ธธ์ด๊ฐ€ Wcm, ์„ธ๋กœ ๊ธธ์ด๊ฐ€ Hcm์ธ ์ง์‚ฌ๊ฐํ˜• ์ข…์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ข…์ด์—๋Š” ๊ฐ€๋กœ, ์„ธ๋กœ ๋ฐฉํ–ฅ๊ณผ ํ‰ํ–‰ํ•˜๊ฒŒ ๊ฒฉ์ž ํ˜•ํƒœ๋กœ ์„ ์ด ๊ทธ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๋ชจ๋“  ๊ฒฉ์ž ์นธ์€ 1cm x 1cm ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. ์ด ์ข…์ด๋ฅผ ๊ฒฉ์ž ์„ ์„ ๋”ฐ๋ผ 1cm × 1cm์˜ ์ •์‚ฌ๊ฐํ˜•์œผ๋กœ ์ž˜๋ผ ์‚ฌ์šฉํ•  ์˜ˆ์ •์ด์—ˆ๋Š”๋ฐ, ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ์ด ์ข…์ด๋ฅผ ๋Œ€๊ฐ์„  ๊ผญ์ง“์  2๊ฐœ๋ฅผ ์ž‡๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ์ž˜๋ผ ๋†“์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ํ˜„์žฌ ์ง์‚ฌ๊ฐํ˜• ์ข…์ด๋Š” ํฌ๊ธฐ๊ฐ€ ๊ฐ™์€ ์ง๊ฐ์‚ผ๊ฐํ˜• 2๊ฐœ๋กœ ๋‚˜๋ˆ„์–ด์ง„ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ข…์ด๋ฅผ ๊ตฌํ•  ์ˆ˜ ์—†๋Š” ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ด ์ข…์ด์—์„œ ์›๋ž˜ ์ข…์ด์˜ ๊ฐ€๋กœ, ์„ธ๋กœ ๋ฐฉํ–ฅ๊ณผ ํ‰ํ–‰ํ•˜๊ฒŒ 1cm × 1cm๋กœ ์ž˜๋ผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋งŒํผ๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
๊ฐ€๋กœ์˜ ๊ธธ์ด W์™€ ์„ธ๋กœ์˜ ๊ธธ์ด H๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ •์‚ฌ๊ฐํ˜•์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

 

์ œํ•œ์‚ฌํ•ญ
  • W, H : 1์–ต ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜

 

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1
๊ฐ€๋กœ๊ฐ€ 8, ์„ธ๋กœ๊ฐ€ 12์ธ ์ง์‚ฌ๊ฐํ˜•์„ ๋Œ€๊ฐ์„  ๋ฐฉํ–ฅ์œผ๋กœ ์ž๋ฅด๋ฉด ์ด 16๊ฐœ ์ •์‚ฌ๊ฐํ˜•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์›๋ž˜ ์ง์‚ฌ๊ฐํ˜•์—์„œ๋Š” 96๊ฐœ์˜ ์ •์‚ฌ๊ฐํ˜•์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ์œผ๋ฏ€๋กœ, 96 - 16 = 80 ์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

๋ฌธ์ œ ์ดํ•ด

์ผ๋‹จ ๊ทธ๋ฆผ์„ ๋šซ์–ด์ง€๊ฒŒ ๋ณด์•˜๋‹ค. ํ•ญ์ƒ ๊ทธ๋žฌ๋“ฏ์ด ํŒจํ„ด ํŒŒ์•…์— ์‹ ๊ฒฝ์„ ์จ ๋ณด์•˜๋‹ค. 

์‚ฌ๊ฐํ˜•์˜ ๊ผญ์ง“์ ๊ณผ ๋งŒ๋‚˜๋Š” ์ง€์ ์ด ๋ˆˆ์— ๋„์—ˆ๋‹ค. 

์ด๋Ÿฐ ๋ถ€๋ถ„์ด (2, 3) ์ฃผ๊ธฐ๋กœ ๋ฐ˜๋ณต๋œ๋‹ค. (2, 3)์ด ๊ฐ€์ง€๋Š” ์‚ฌ๊ฐํ˜•์˜ ํฌ๊ธฐ๋Š” 2 x 3 = 6๊ณผ ๊ฐ™๋‹ค.

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์‚ฌ๊ฐํ˜•์˜ ๊ฐœ์ˆ˜๋Š” ์ผ๋‹จ 2๊ฐœ๋กœ ๋ณด์ธ๋‹ค.

 

๊ทธ๋Ÿผ ๋‹ค์Œ ์ฃผ๊ธฐ์ธ (4, 6)์„ ๋ณด์ž. ์™„์ „ํ•œ ์‚ฌ๊ฐํ˜•์˜ ๊ฐœ์ˆ˜๋Š” 16๊ฐœ์ด๋‹ค. ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅ ์‚ฌ๊ฐํ˜•์€ 8๊ฐœ์ด๋‹ค. ์•„์ง ์•ˆ ๋ณด์ธ๋‹ค. ๋” ๋ณด์ž

 

๋‹ค์Œ ์ฃผ๊ธฐ (6, 9)์ด๋‹ค. ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅ ์‚ฌ๊ฐํ˜• ๊ฐœ์ˆ˜๋Š” 4๊ฐœ์”ฉ ๋Š˜์–ด๋‚˜๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉ ๋ถˆ๊ฐ€๋Šฅ ์‚ฌ๊ฐํ˜•์˜ ๊ฐœ์ˆ˜๋Š” 12. ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์‚ฌ๊ฐํ˜•์€ 42๊ฐœ.

 

ํ•˜๋‚˜๋งŒ ๋” ๋ณด์ž (8, 12) ์‚ฌ์šฉ ๋ถˆ๊ฐ€ ์‚ฌ๊ฐํ˜• 16๊ฐœ

 

์Œ..

 

์ผ๋‹จ x์ถ•์˜ ์ฆ๋ถ„์€ 2, y์ถ• ์ฆ๋ถ„์€ 3์ด๋‹ค. ์ด๋ฏธ์ง€ ์ƒ ์ฃผ์–ด์ง„ ๊ฐ€๋กœ ์„ธ๋กœ์˜ ๊ฐ’์€ 8, 12 ์ธ๋ฐ ์ฆ๋ถ„์€ ๊ฐ 2, 3 ์ด๋Š” ๊ณง ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜์ธ 4๋กœ ๋‚˜๋ˆ„์–ด์ง„ ๊ฐ’์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. 

์ผ์ •ํ•œ ํŒจํ„ด์œผ๋กœ ์ด๋ค„์ง„ ์‚ฌ๊ฐํ˜•์˜ ๊ฐœ์ˆ˜๋Š” w์ฆ๋ถ„(w/์ตœ๋Œ€๊ณต์•ฝ์ˆ˜) x h์ฆ๋ถ„(h/์ตœ๋Œ€๊ณต์•ฝ์ˆ˜)์ด๋‹ค. 

 

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ๊ฒƒ์ด ๊ธฐ๋ณธ ํŒจํ„ด์—์„œ ์™„์ „์น˜ ๋ชปํ•œ ์‚ฌ๊ฐํ˜•์˜ ๊ฐœ์ˆ˜๋Š” ์ด ์‚ฌ๊ฐํ˜• ๊ฐœ์ˆ˜ - (w + h -1)์ด๋‹ค. ๊ฐ€๋กœ์ง€๋ฅด๋Š” ์ง์„ ์— ๊ฑธ์นœ ์ค‘๊ฐ„ ๋ถ€๋ถ„์€ 2๊ฐœ์˜ ์‚ฌ๊ฐํ˜•์ด ๊ฑธ์ณ์žˆ์œผ๋ฏ€๋กœ 1์„ ๋” ์ œํ•ด์ฃผ๋ฉด ๋œ๋‹ค. ๋ฐ˜๋ณต ํŒจํ„ด์˜ ํšŸ์ˆ˜๋Š” ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋งŒํผ์ด๋ฏ€๋กœ

 

(w x h) - (((w / ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜) + (h / ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜) - 1) * ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜) ๊ฐ€ ๋œ๋‹ค. 

 

์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ BigInteger ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

ํ’€์ด

 

 

๋ฐ˜์‘ํ˜•