๋ชฉ๋กAlgorithm (101)

Hello Ocean! ๐ŸŒผ

[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””] programmers, N์œผ๋กœ ํ‘œํ˜„

[๋ฌธ์ œ] ์•„๋ž˜์™€ ๊ฐ™์ด 5์™€ ์‚ฌ์น™์—ฐ์‚ฐ๋งŒ์œผ๋กœ 12๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5๋ฅผ ์‚ฌ์šฉํ•œ ํšŸ์ˆ˜๋Š” ๊ฐ๊ฐ 6,5,4 ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด์ค‘ ๊ฐ€์žฅ ์ž‘์€ ๊ฒฝ์šฐ๋Š” 4์ž…๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ ์ˆซ์ž N๊ณผ number๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, N๊ณผ ์‚ฌ์น™์—ฐ์‚ฐ๋งŒ ์‚ฌ์šฉํ•ด์„œ ํ‘œํ˜„ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์ค‘ N ์‚ฌ์šฉํšŸ์ˆ˜์˜ ์ตœ์†Ÿ๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”. N์€ 1 ์ด์ƒ 9 ์ดํ•˜์ž…๋‹ˆ๋‹ค. number๋Š” 1 ์ด์ƒ 32,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค. ์ˆ˜์‹์—๋Š” ๊ด„ํ˜ธ์™€ ์‚ฌ์น™์—ฐ์‚ฐ๋งŒ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋‚˜๋ˆ„๊ธฐ ์—ฐ์‚ฐ์—์„œ ๋‚˜๋จธ์ง€๋Š” ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Ÿ๊ฐ’์ด 8๋ณด๋‹ค ํฌ๋ฉด -1์„ return ํ•ฉ๋‹ˆ๋‹ค. [ํ’€์ด] ์ฒซ ๋ฒˆ์งธ. ๋ฌธ์ œ ๊ฐˆ๋ž˜์—๋„ DP๊ฐ€ ๋ช…์‹œ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ..

Algorithm 2020. 4. 4. 12:09
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋””] ๋ฐฑ์ค€ #2531 ํšŒ์ „์ดˆ๋ฐฅ

[๋ฌธ์ œ] ํšŒ์ „ํ•˜๋Š” ๋ฒจํŠธ ์œ„์— ์œ„์™€ ๊ฐ™์ด ์ดˆ๋ฐฅ๋“ค์ด ์žˆ๋‹ค. ๋ฒจํŠธ ์œ„์—๋Š” ๊ฐ™์€ ์ข…๋ฅ˜์˜ ์ดˆ๋ฐฅ์ด ์—ฌ๋Ÿฌ๊ฐœ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์†๋‹˜์€ ์ดˆ๋ฐฅ์„ ๊ณจ๋ผ์„œ ๋จน์„ ๊ฒƒ์ด๋‹ค. 1. ์—ฐ์†์œผ๋กœ k์ ‘์‹œ๋ฅผ ๋จน์„ ๊ฒฝ์šฐ, ํ• ์ธ๋œ ๊ฐ€๊ฒฉ์„ ์ง€๋ถˆํ•œ๋‹ค. 2. ๊ฐ ๊ณ ๊ฐ์—๊ฒŒ ์ดˆ๋ฐฅ ์ข…๋ฅ˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์“ฐ์—ฌ์ง„ ์ฟ ํฐ์„ ๋ฐœํ–‰ํ•˜๊ณ , ์†๋‹˜์ด 1๋ฒˆ ํ–‰์‚ฌ์— ์ฐธ๊ฐ€ํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ์ดˆ๋ฐฅ 1์ ‘์‹œ๋ฅผ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณตํ•œ๋‹ค. ๋ฒจํŠธ ์œ„์— ํ•ด๋‹น ์ดˆ๋ฐฅ์ด ์—†์„ ๊ฒฝ์šฐ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด ์ œ๊ณตํ•œ๋‹ค. ์†๋‹˜์€ ์œ„์˜ ํ–‰์‚ฌ์— ์ฐธ์—ฌํ•˜์—ฌ ์ตœ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ์ดˆ๋ฐฅ์„ ๋จน์œผ๋ ค๊ณ  ํ•œ๋‹ค. [input] ๋ฒจํŠธ์— ๋†“์ธ ์ ‘์‹œ์˜ ์ˆ˜ N ( 2 ≤ N ≤ 30000 ) ์ดˆ๋ฐฅ์˜ ๊ฐ€์ง“์ˆ˜ d ( 2 ≤ d ≤ 3000 ) ์—ฐ์†ํ•ด์„œ ๋จน๋Š” ์ ‘์‹œ์˜ ์ˆ˜ k ( 2 ≤ k ≤ 3000 (k ≤ N) ) ์ฟ ํฐ๋ฒˆํ˜ธ c ( 1 ≤ c ≤ d ) N d ..

Algorithm 2020. 4. 4. 00:16
[C++] C++ ์ฝ”๋”ฉ ์‹œ์ž‘ํ•˜๊ธฐ (visual studio)

์ง€๊ธˆ๊นŒ์ง€ python์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋ฅผ ํ•ด์™”๋‹ค. python์€ ๋ณต์žกํ•œ ๋ฌธ๋ฒ•์ด ์—†๊ณ , C์— ๋น„ํ•ด ์ž…์ถœ๋ ฅ, ๋ฐฐ์—ด๋‹ค๋ฃจ๊ธฐ์— ํŽธํ•ด์„œ ๋งŒ์กฑ์Šค๋Ÿฝ๊ฒŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์–ด๋ ค์šด ๋ฌธ์ œ๋ฅผ ํ’€๊ฒŒ ๋˜๋ฉด์„œ python์œผ๋กœ ํ’€๊ฒŒ๋˜๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ์ผ์–ด๋‚˜๋Š” ์ƒํ™ฉ์„ ๊ฒช๊ฒŒ ๋˜์—ˆ๋‹ค. ์•ž์œผ๋กœ ๋” ์–ด๋ ค์šด ๋ฌธ์ œ๋ฅผ ํ’€๊ฒŒ ๋˜์—ˆ์„ ๋•Œ๋„ ๊ฐ™์€ ์ƒํ™ฉ์ด ๋ฐ˜๋ณต๋  ๊ฒƒ ๊ฐ™์•„์„œ C++๋กœ ๊ฐˆ์•„ํƒ€๊ธฐ๋กœ ํ–ˆ๋‹ค. visual studio code๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜, C++์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ๊ฝค๋‚˜ ๋ณต์žกํ•ด ๋ณด์—ฌ์„œ, ๋ฌด๊ฒ๊ธด ํ•˜์ง€๋งŒ ๋”ฐ๋กœ ์„ค์ •์ด ํ•„์š” ์—†๋Š” visual studio๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. C๋งŒ ๋ฐฐ์šฐ๊ณ , C++์€ ์ œ๋Œ€๋กœ ๋ฐฐ์›Œ๋ณธ ์ ์ด ์—†์–ด์„œ, C++๋งŒ์˜ ๋ฌธ๋ฒ•์„ ์ตํžˆ๋ ค๋ฉด ๊ฝค๋‚˜ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆด ๊ฒƒ ๊ฐ™๋‹ค.

Algorithm 2020. 4. 2. 13:11
[์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต] 8์žฅ ๋™์  ๊ณ„ํš๋ฒ•_1

๋™์  ๊ณ„ํš๋ฒ• = dynamic programming [๊ฐœ๋…] ๋ถ„ํ• ์ •๋ณต๊ณผ ๊ฐ™์ด ์ฒ˜์Œ ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋“ค์„ ๋” ์ž‘์€ ๋ฌธ์ œ๋“ค๋กœ ๋‚˜๋ˆˆ ๋’ค, ์ž‘์€ ์กฐ๊ฐ๋“ค์„ ๊ณ„์‚ฐํ•˜๊ณ , ํ•ฉ์ณ์„œ ๋” ํฐ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๋‹ต์„ ๊ณ„์‚ฐํ•ด๋‚ด๋Š” ์ ‘๊ทผ ๋ฐฉ์‹์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋ถ„ํ•  ์ •๋ณต๊ณผ ๋‹ค๋ฅธ ์ ์€ '์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„ ๋ฌธ์ œ'๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•ด์„œ ํ•œ ๋ฒˆ๋งŒ ๊ณ„์‚ฐํ•˜๊ฒŒ๋” ๋งŒ๋“ ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„ ๋ฌธ์ œ(overlapping subproblem) : ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ์— ๋‘ ๋ฒˆ ์ด์ƒ ๊ณ„์‚ฐ ๋˜๋Š” ๋ถ€๋ถ„๋ฌธ์ œ ์œ„์˜ ์‚ฌ์ง„์—์„œ๋Š” ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„ ๋ฌธ์ œ๊ฐ€ ํ•œ ๊ฐœ ์ด์ง€๋งŒ, ๊นŠ์ด๊ฐ€ ๊นŠ์–ด์งˆ ๊ฒฝ์šฐ ์ง€์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด ๋™์  ๊ณ„ํš๋ฒ•์ด๋‹ค. [์˜ˆ์‹œ : ์ดํ•ญ๊ณ„์ˆ˜(์กฐํ•ฉ)] ์„œ๋กœ ๋‹ค๋ฅธ n๊ฐœ์˜ ์›์†Œ ์ค‘์— r๊ฐœ์˜ ์›์†Œ๋ฅผ ์ˆœ์„œ ์—†์ด ๊ณจ๋ผ๋‚ด๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜ ์ด ๋ฌธ์ œ์˜ ์‹œ๊ฐ„ ๋ณต..

Algorithm 2020. 4. 2. 12:22