๐Ÿ“• Algorithm/Algorithm

๊ตฌํ˜„ - ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ •ํ™•ํ•˜๊ณ  ๋น ๋ฅด๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ž‘์„ฑํ•˜๊ธฐ

ํ•œ์ฝ”๋”ฉ 2020. 11. 14. 14:00
728x90
728x90

๊ตฌํ˜„?

'๋จธ๋ฆฟ์†์— ์žˆ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์†Œ์Šค์ฝ”๋“œ๋กœ ๋ฐ”๊พธ๋Š” ๊ณผ์ •!'

 

์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ต์žฌ์—์„œ๋Š” '๊ตฌํ˜„' ์œ ํ˜•์„ ๋‹ค๋ฃจ์ง€ ์•Š์ง€๋งŒ, ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ๋ฐฐ์šธ๋งŒํผ ์ค‘์š”ํ•˜๋‹ค.

 

ํ”ผ์ง€์ปฌ์ด ์ข‹๋‹ค? → ์–ธ์–ด ๋ฌธ๋ฒ•์— ๋Šฅ์ˆ™ํ•˜๊ณ  ํƒ€์ž ์†๋„๊ฐ€ ๋น ๋ฅธ ๋Šฅ๋ ฅ

 

ex) ์Šคํƒ€ํฌ๋ž˜ํ”„ํŠธ Play → ์ตœ๊ณ ์˜ ์ „๋žต, BUT ๋งˆ์šฐ์Šค๋ฅผ ๋น ๋ฅด๊ฒŒ ์›€์ง์ด์ง€ ๋ชปํ•จ...

                             =  ์ตœ๊ณ ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜, BUT ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ž˜ ๋‹ค๋ฃจ์ง€ ๋ชปํ•จ...

 

  • ์™„์ „ํƒ์ƒ‰ : ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ฃผ์ € ์—†์ด ๋‹ค ๊ณ„์‚ฐํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
  • ์‹œ๋ฎฌ๋ ˆ์ด์…˜ : ๋ฌธ์ œ์—์„œ ์ œ์‹œํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•œ ๋‹จ๊ณ„์”ฉ ์ฐจ๋ก€๋Œ€๋กœ ์ง์ ‘ ์ˆ˜ํ–‰

→ ๋‘˜ ๋‹ค ๊ตฌํ˜„์ด ํ•ต์‹ฌ! 

 

 

๊ตฌํ˜„ ์‹œ ๊ณ ๋ คํ•ด์•ผํ•  ๋ฉ”๋ชจ๋ฆฌ ์ œ์•ฝ ์‚ฌํ•ญ

1) ์ž๋ฃŒํ˜• ํ‘œํ˜„ ๋ฒ”์œ„

์ •์ˆ˜ํ˜• int → 4 Byte

 

๊ธฐ๋ณธ int ์ž๋ฃŒํ˜•์˜ ํ‘œํ˜„ ๋ฒ”์œ„๋Š” -2,147,483,648 ~ 2,147,483,647์ด๋‹ค. 

 

์ฆ‰, 2,147,483,648์ด๋ผ๋Š” ์ˆซ์ž๋Š” ํ‘œํ˜„ํ•  ์ˆ˜ ์—†๋‹ค.

 

์ด๋Ÿด ๋•Œ์—๋Š” long long์ด๋ผ๋Š” 8 Byte ์ •์ˆ˜ํ˜• ์ž๋ฃŒํ˜•์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜

 

๋” ํฐ ์ˆซ์ž๋ฅผ ํ‘œํ˜„ํ•  ๋•Œ์—๋Š” BigInteger ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค. ( ํ‘œํ˜„ ๋ฒ”์œ„ ์ œํ•œ ์—†์Œ )

 

 

2) ์ฑ„์  ํ™˜๊ฒฝ

์‹ค์ œ ์˜จ๋ผ์ธ ์ €์ง€ ์„œ๋น„์Šค์—์„œ ์ฑ„์  ํ™˜๊ฒฝ์˜ ์‹œ์Šคํ…œ ์ œํ•œ์ด ์กด์žฌํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด,

 

 

์œ„์™€ ๊ฐ™์€ ์ œํ•œ์ด ์ฃผ์–ด์ง€๋ฉด ์šฐ๋ฆฌ๋Š” ์ฃผ์–ด์ง„ ์ œํ•œ ์กฐ๊ฑด์— ๋งž์ถ”์–ด ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

 

์ฐธ๊ณ ๋กœ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋งˆ๋‹ค ๋™์ž‘ ์†๋„๊ฐ€ ๋‹ค๋ฅด๋‹ค.

 

Python < C/C++

 

 

3) ๊ตฌํ˜„ ๋ฌธ์ œ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ฌธ์ž์—ด ์ฒ˜๋ฆฌ, ํฐ ์ •์ˆ˜ ์ฒ˜๋ฆฌ ๋ฌธ์ œ๊ฐ€ ์ถœ์ œ๋˜๋ฉด C/C++/JAVA๋กœ๋Š” ์–ด๋ ต๋‹ค. 

 

Python์€ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•๋งŒ ์•Œ์•„๋„ ์ƒ๋Œ€์ ์œผ๋กœ ๊ตฌํ˜„ ์œ ํ˜•์˜ ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐ ๊ฐ€๋Šฅ!

 

 

์นด์นด์˜ค ๊ฐ™์€ ๊ฒฝ์šฐ ๊ณต์ฑ„ ๋•Œ API ๊ฐœ๋ฐœ ๋ฌธ์ œ๊ฐ€ ์ถœ์ œ๋œ ์ ์ด ์žˆ๋‹ค. 

 

์นด์นด์˜ค ๋ฌธ์ œ ํ’€์ด ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ๋ชจ๋“ˆ์„ ์ž‘์„ฑํ•ด์•ผ ํ–ˆ๋‹ค.

 

์ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์™€ ๋ณ„๊ฐœ๋กœ ์›น ์„œ๋ฒ„๋‚˜ ๋ฐ์ดํ„ฐ ๋ถ„์„์— ๋Œ€ํ•œ ๊ธฐ์ดˆ ์ง€์‹์ด ํ•„์š”ํ•˜๋‹ค.

 

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

 

 

 

์ถœ์ฒ˜ : ์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋‹ค with ํŒŒ์ด์ฌ : ์ทจ์—…๊ณผ ์ด์ง์„ ๊ฒฐ์ •ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ธํ„ฐ๋ทฐ ์™„๋ฒฝ ๊ฐ€์ด๋“œ

728x90
๋ฐ˜์‘ํ˜•