[c++] BOJ 1309๋ฒˆ :: ๋™๋ฌผ์›
Algorithm ๋ฌธ์ œ/BOJ 2020. 4. 25. 09:41

๋™๋ฌผ์› ๋ฌธ์ œ ์–ด๋–ค ๋™๋ฌผ์›์— ๊ฐ€๋กœ๋กœ ๋‘์นธ ์„ธ๋กœ๋กœ N์นธ์ธ ์•„๋ž˜์™€ ๊ฐ™์€ ์šฐ๋ฆฌ๊ฐ€ ์žˆ๋‹ค. ์ด ๋™๋ฌผ์›์—๋Š” ์‚ฌ์ž๋“ค์ด ์‚ด๊ณ  ์žˆ๋Š”๋ฐ ์‚ฌ์ž๋“ค์„ ์šฐ๋ฆฌ์— ๊ฐ€๋‘˜ ๋•Œ, ๊ฐ€๋กœ๋กœ๋„ ์„ธ๋กœ๋กœ๋„ ๋ถ™์–ด ์žˆ๊ฒŒ ๋ฐฐ์น˜ํ•  ์ˆ˜๋Š” ์—†๋‹ค. ์ด ๋™๋ฌผ์› ์กฐ๋ จ์‚ฌ๋Š” ์‚ฌ์ž๋“ค์˜ ๋ฐฐ์น˜ ๋ฌธ์ œ ๋•Œ๋ฌธ์— ๊ณจ๋จธ๋ฆฌ๋ฅผ ์•“๊ณ  ์žˆ๋‹ค. ๋™๋ฌผ์› ์กฐ๋ จ์‚ฌ์˜ ๋จธ๋ฆฌ๊ฐ€ ์•„ํ”„์ง€ ์•Š๋„๋ก ์šฐ๋ฆฌ๊ฐ€ 2*N ๋ฐฐ์—ด์— ์‚ฌ์ž๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐ€์ง€์ธ์ง€๋ฅผ ์•Œ์•„๋‚ด๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด ์ฃผ๋„๋ก ํ•˜์ž. ์‚ฌ์ž๋ฅผ ํ•œ ๋งˆ๋ฆฌ๋„ ๋ฐฐ์น˜ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋„ ํ•˜๋‚˜์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋กœ ์นœ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์šฐ๋ฆฌ์˜ ํฌ๊ธฐ N(1≤N≤100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ์‚ฌ์ž๋ฅผ ๋ฐฐ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ 9901๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•˜์—ฌ๋ผ. ์˜ˆ์ œ ์ž…๋ ฅ 1 4 ์˜ˆ์ œ ์ถœ๋ ฅ 1 41 ๋‚˜์˜ ๋‹ต ์ฝ”๋“œ N ์ž…๋ ฅ ๋ฐ›๊ธฐ sum = 1+2..

[c++] BOJ 1461๋ฒˆ :: ๋„์„œ๊ด€
Algorithm ๋ฌธ์ œ/BOJ 2020. 4. 23. 23:45

๋„์„œ๊ด€ https://www.acmicpc.net/problem/1461 ๋ฌธ์ œ ์„ธ์ค€์ด๋Š” ๋„์„œ๊ด€์—์„œ ์ผํ•œ๋‹ค. ๋„์„œ๊ด€์˜ ๊ฐœ๋ฐฉ์‹œ๊ฐ„์ด ๋๋‚˜์„œ ์„ธ์ค€์ด๋Š” ์‚ฌ๋žŒ๋“ค์ด ๋งˆ๊ตฌ ๋†“์€ ์ฑ…์„ ๋‹ค์‹œ ๊ฐ€์ ธ๋‹ค ๋†“์•„์•ผ ํ•œ๋‹ค. ์„ธ์ค€์ด๋Š” ํ˜„์žฌ 0์— ์žˆ๊ณ , ์‚ฌ๋žŒ๋“ค์ด ๋งˆ๊ตฌ ๋†“์€ ์ฑ…๋„ ์ „๋ถ€ 0์— ์žˆ๋‹ค. ๊ฐ ์ฑ…๋“ค์˜ ์›๋ž˜ ์œ„์น˜๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์ฑ…์„ ๋ชจ๋‘ ์ œ์ž๋ฆฌ์— ๋†”๋‘˜ ๋•Œ ๋“œ๋Š” ์ตœ์†Œ ๊ฑธ์Œ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์„ธ์ค€์ด๋Š” ํ•œ ๊ฑธ์Œ์— ์ขŒํ‘œ 1์นธ์”ฉ ๊ฐ€๋ฉฐ, ์ฑ…์˜ ์›๋ž˜ ์œ„์น˜๋Š” ์ •์ˆ˜ ์ขŒํ‘œ์ด๋‹ค. ์ฑ…์„ ๋ชจ๋‘ ์ œ์ž๋ฆฌ์— ๋†”๋‘” ํ›„์—๋Š” ๋‹ค์‹œ 0์œผ๋กœ ๋Œ์•„์˜ฌ ํ•„์š”๋Š” ์—†๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์„ธ์ค€์ด๋Š” ํ•œ ๋ฒˆ์— ์ตœ๋Œ€ M๊ถŒ์˜ ์ฑ…์„ ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ฑ…์˜ ๊ฐœ์ˆ˜ N๊ณผ, ์„ธ์ค€์ด๊ฐ€ ํ•œ ๋ฒˆ์— ๋“ค ์ˆ˜ ์žˆ๋Š” ์ฑ…์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ฑ…์˜ ์œ„์น˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. N์€ ..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต 1๊ถŒ :: JLIS (์ฝ”๋“œ x - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„์„๋งŒ)
Algorithm ๋ฌธ์ œ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต 2020. 4. 19. 15:06

ํ•ฉ์นœ LIS https://www.algospot.com/judge/problem/read/JLIS ๋ฌธ์ œ ์–ด๋–ค ์ˆ˜์—ด์—์„œ 0๊ฐœ ์ด์ƒ์˜ ์ˆซ์ž๋ฅผ ์ง€์šด ๊ฒฐ๊ณผ๋ฅผ ์› ์ˆ˜์—ด์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด '4 7 6'์€ '4 3 7 6 9'์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์ž…๋‹ˆ๋‹ค. ์ค‘๋ณต๋œ ์ˆซ์ž๊ฐ€ ์—†๊ณ  ์˜ค๋ฆ„ ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์žˆ๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด๋“ค์„ ๊ฐ€๋ฆฌ์ผœ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด์ด๋ผ๊ณ  ๋ถ€๋ฅด์ง€์š”. ์˜ˆ๋ฅผ ๋“ค์–ด '3 6 9'๋Š” ์•ž์˜ ์ˆ˜์—ด์˜ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด์ž…๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ์ •์ˆ˜ ์ˆ˜์—ด A ์™€ B ์—์„œ ๊ฐ๊ฐ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ์–ป์€ ๋’ค ์ด๋“ค์„ ํฌ๊ธฐ ์ˆœ์„œ๋Œ€๋กœ ํ•ฉ์นœ ๊ฒƒ์„ ํ•ฉ์นœ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋กœ ํ•ฉ์‹œ๋‹ค. ์ด ์ค‘ ๊ฐ€์žฅ ๊ธด ์ˆ˜์—ด์„ ํ•ฉ์นœ LIS(JLIS, Joined Longest Increasing Subsequence)์ด๋ผ๊ณ  ๋ถ€๋ฆ…์‹œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด '..

[c++] BOJ 9251๋ฒˆ :: LCS (ํ’€์ด ๋ฐ ์„ค๋ช… + ๋” ๋‚˜์€ ์ฝ”๋“œ)
Algorithm ๋ฌธ์ œ/BOJ 2020. 4. 18. 23:04

LCS ์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ œ์ถœ ์ •๋‹ต ๋งž์€ ์‚ฌ๋žŒ ์ •๋‹ต ๋น„์œจ 1 ์ดˆ 256 MB 19827 8068 6050 41.148% ๋ฌธ์ œ LCS(Longest Common Subsequence, ์ตœ์žฅ ๊ณตํ†ต ๋ถ€๋ถ„ ์ˆ˜์—ด)๋ฌธ์ œ๋Š” ๋‘ ์ˆ˜์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ชจ๋‘์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์ด ๋˜๋Š” ์ˆ˜์—ด ์ค‘ ๊ฐ€์žฅ ๊ธด ๊ฒƒ์„ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ACAYKP์™€ CAPCAK์˜ LCS๋Š” ACAK๊ฐ€ ๋œ๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„๊ณผ ๋‘˜์งธ ์ค„์— ๋‘ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ๋ฌธ์ž์—ด์€ ์•ŒํŒŒ๋ฒณ ๋Œ€๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ์ตœ๋Œ€ 1000๊ธ€์ž๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ถœ๋ ฅ ์ฒซ์งธ ์ค„์— ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ๋‘ ๋ฌธ์ž์—ด์˜ LCS์˜ ๊ธธ์ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋‚˜์˜ ๋‹ต ์ƒ๊ฐ์˜ ํ๋ฆ„ ์™„์ „ํƒ์ƒ‰ ์กฐ๊ฑด ์ค˜๋„ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์šฐ์„  ์™„์ „ํƒ์ƒ‰์„ ๊ตฌํ˜„ํ•  ๋•Œ๋Š” s..

[c++] BOJ 1149๋ฒˆ :: RGB๊ฑฐ๋ฆฌ
Algorithm ๋ฌธ์ œ/BOJ 2020. 4. 16. 21:31

RGB ๊ฑฐ๋ฆฌ ์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ œ์ถœ ์ •๋‹ต ๋งž์€ ์‚ฌ๋žŒ ์ •๋‹ต ๋น„์œจ 0.5 ์ดˆ (์ถ”๊ฐ€ ์‹œ๊ฐ„ ์—†์Œ) 128 MB 42269 19789 14882 47.682% ๋ฌธ์ œ RGB๊ฑฐ๋ฆฌ์—๋Š” ์ง‘์ด N๊ฐœ ์žˆ๋‹ค. ๊ฑฐ๋ฆฌ๋Š” ์„ ๋ถ„์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๊ณ , 1๋ฒˆ ์ง‘๋ถ€ํ„ฐ N๋ฒˆ ์ง‘์ด ์ˆœ์„œ๋Œ€๋กœ ์žˆ๋‹ค. ์ง‘์€ ๋นจ๊ฐ•, ์ดˆ๋ก, ํŒŒ๋ž‘ ์ค‘ ํ•˜๋‚˜์˜ ์ƒ‰์œผ๋กœ ์น ํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ๊ฐ์˜ ์ง‘์„ ๋นจ๊ฐ•, ์ดˆ๋ก, ํŒŒ๋ž‘์œผ๋กœ ์น ํ•˜๋Š” ๋น„์šฉ์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์•„๋ž˜ ๊ทœ์น™์„ ๋งŒ์กฑํ•˜๋ฉด์„œ ๋ชจ๋“  ์ง‘์„ ์น ํ•˜๋Š” ๋น„์šฉ์˜ ์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•ด๋ณด์ž. 1๋ฒˆ ์ง‘์˜ ์ƒ‰์€ 2๋ฒˆ ์ง‘์˜ ์ƒ‰๊ณผ ๊ฐ™์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. N๋ฒˆ ์ง‘์˜ ์ƒ‰์€ N-1๋ฒˆ ์ง‘์˜ ์ƒ‰๊ณผ ๊ฐ™์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. i(2 ≤ i ≤ N-1)๋ฒˆ ์ง‘์˜ ์ƒ‰์€ i-1๋ฒˆ, i+1๋ฒˆ ์ง‘์˜ ์ƒ‰๊ณผ ๊ฐ™์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. ์ž…๋ ฅ ์ฒซ์งธ ์ค„์— ์ง‘์˜ ์ˆ˜ N(2 ≤ N ≤ 1,000)์ด ..

[c++] ๋ฐฐ์—ด ๋ฐ (STL) vector ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ• ์ •๋ฆฌ
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 4. 13. 20:33

์ปจํ…Œ์ด๋„ˆ์— ๊ธฐ๋ณธ๊ฐ’ ์ฑ„์šฐ๊ธฐ ๋ฐฐ์—ด 1์ฐจ์› ๋ฐฐ์—ด ๊ธฐ์กด ์ฝ”๋“œ #include using namespace std; int main() { int arr[3]; for (int i = 0; i < 3; i++) { cout

[c++] BOJ 1417๋ฒˆ :: ๊ตญํšŒ์˜์› ์„ ๊ฑฐ
Algorithm ๋ฌธ์ œ/BOJ 2020. 4. 10. 15:54

๊ตญํšŒ์˜์› ์„ ๊ฑฐ ๋ฌธ์ œ ๋‹ค์†œ์ด๋Š” ์‚ฌ๋žŒ์˜ ๋งˆ์Œ์„ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ๋‹ค์†œ์ด๋Š” ์ด ๊ธฐ๊ณ„๋ฅผ ์ด์šฉํ•ด์„œ 2008๋…„ 4์›” 9์ผ ๊ตญํšŒ์˜์› ์„ ๊ฑฐ๋ฅผ ์กฐ์ž‘ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋‹ค์†œ์ด์˜ ๊ธฐ๊ณ„๋Š” ๊ฐ ์‚ฌ๋žŒ๋“ค์ด ๋ˆ„๊ตฌ๋ฅผ ์ฐ์„ ์ง€ ๋ฏธ๋ฆฌ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค. ์–ด๋–ค ์‚ฌ๋žŒ์ด ๋ˆ„๊ตฌ๋ฅผ ์ฐ์„ ์ง€ ์ •ํ–ˆ์œผ๋ฉด, ๋ฐ˜๋“œ์‹œ ์„ ๊ฑฐ๋•Œ ๊ทธ ์‚ฌ๋žŒ์„ ์ฐ๋Š”๋‹ค. ํ˜„์žฌ ํ˜•ํƒ๊ตฌ์— ๋‚˜์˜จ ๊ตญํšŒ์˜์› ํ›„๋ณด๋Š” N๋ช…์ด๋‹ค. ๋‹ค์†œ์ด๋Š” ์ด ๊ธฐ๊ณ„๋ฅผ ์ด์šฉํ•ด์„œ ๊ทธ ๋งˆ์„์˜ ์ฃผ๋ฏผ M๋ช…์˜ ๋งˆ์Œ์„ ๋ชจ๋‘ ์ฝ์—ˆ๋‹ค. ๋‹ค์†œ์ด๋Š” ๊ธฐํ˜ธ 1๋ฒˆ์ด๋‹ค. ๋‹ค์†œ์ด๋Š” ์‚ฌ๋žŒ๋“ค์˜ ๋งˆ์Œ์„ ์ฝ์–ด์„œ ์ž์‹ ์„ ์ฐ์ง€ ์•Š์œผ๋ ค๋Š” ์‚ฌ๋žŒ์„ ๋ˆ์œผ๋กœ ๋งค์ˆ˜ํ•ด์„œ ๊ตญํšŒ์˜์›์— ๋‹น์„ ์ด ๋˜๊ฒŒ ํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ๋“ํ‘œ์ˆ˜ ๋ณด๋‹ค ๋งŽ์€ ๋“ํ‘œ์ˆ˜๋ฅผ ๊ฐ€์งˆ ๋•Œ, ๊ทธ ์‚ฌ๋žŒ์ด ๊ตญํšŒ์˜์›์— ๋‹น์„ ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ, ๋งˆ์Œ์„ ์ฝ์€ ๊ฒฐ๊ณผ ๊ธฐํ˜ธ 1๋ฒˆ์ด 5ํ‘œ, ๊ธฐํ˜ธ 2๋ฒˆ์ด..

[c++] Longest Increasing Sequence (๋ฌธ์ œ ID : LIS, ๋‚œ์ด๋„ : ํ•˜) :: ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ ์ „๋žต 1๊ถŒ
Algorithm ๋ฌธ์ œ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ•ด๊ฒฐ์ „๋žต 2020. 4. 8. 16:35

https://www.algospot.com/judge/problem/read/LIS ๋ฌธ์ œ ์–ด๋–ค ์ •์ˆ˜ ์ˆ˜์—ด์—์„œ 0๊ฐœ ์ด์ƒ์˜ ์ˆซ์ž๋ฅผ ์ง€์šฐ๋ฉด ์ด ์ˆ˜์—ด์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด (subsequence) ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 10 7 4 9 ์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์—๋Š” 7 4 9, 10 4, 10 9 ๋“ฑ์ด ์žˆ๋‹ค. ๋‹จ, 10 4 7 ์€ ์›๋ž˜ ์ˆ˜์—ด์˜ ์ˆœ์„œ์™€ ๋‹ค๋ฅด๋ฏ€๋กœ 10 7 4 9 ์˜ ๋ถ€๋ถ„ ์ˆ˜์—ด์ด ์•„๋‹ˆ๋‹ค. ์–ด๋–ค ๋ถ€๋ถ„ ์ˆ˜์—ด์ด ์ˆœ์ฆ๊ฐ€ํ•  ๋•Œ ์ด ๋ถ€๋ถ„ ์ˆ˜์—ด์„ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด (increasing subsequence) ๋ผ๊ณ  ํ•œ๋‹ค. ์ฃผ์–ด์ง„ ์ˆ˜์—ด์˜ ์ฆ๊ฐ€ ๋ถ€๋ถ„ ์ˆ˜์—ด ์ค‘ ๊ฐ€์žฅ ๊ธด ๊ฒƒ์˜ ๊ธธ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ. ์–ด๋–ค ์ˆ˜์—ด์˜ ๊ฐ ์ˆ˜๊ฐ€ ์ด์ „์˜ ์ˆ˜๋ณด๋‹ค ํด ๋•Œ, ์ด ์ˆ˜์—ด์„ ์ˆœ์ฆ๊ฐ€ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ์ž…๋ ฅ ์ž…๋ ฅ์˜ ์ฒซ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ˆ˜ C..