๋ชฉ๋ก์ „์ฒด ๊ธ€ (122)

Hello Ocean! ๐ŸŒผ

[๋ฐฑ์ค€/C++] 1013. Contact

๋ฌธ์ œ https://www.acmicpc.net/problem/1013 1013๋ฒˆ: Contact ์ž…๋ ฅ์˜ ์ฒซ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ ๋‹ค์Œ ์ค„๋ถ€ํ„ฐ ๊ฐ๊ฐ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด ์ „ํŒŒ๋ฅผ ํ‘œํ˜„ํ•˜๋Š”, { 0, 1 }๋งŒ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ด ๊ณต๋ฐฑ ์—†์ด ์ฃผ์–ด์ง„๋‹ค. ๋ฌธ์ž์—ด ๊ธธ์ด๋Š” (1 ≤ www.acmicpc.net ๋ฌธ์ œ๊ฐ€ ๊ต‰์žฅํžˆ ๊ธธ๊ณ  ๋ณต์žกํ•˜๋‹ค.. ๊ผผ๊ผผํžˆ ์ฝ์–ด๋ณด๋ฉด์„œ ์ดํ•ดํ•˜๋Š” ์‹œ๊ฐ„์ด ํ•„์š”ํ•˜๋‹ค. ์š”์•ฝํ•˜์ž๋ฉด, ๊ฒฐ๊ณผ์ ์œผ๋กœ ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด์ด (100+1+|01)+ ํŒจํ„ด์— ํ•ด๋‹นํ•˜๋Š”์ง€ ์•„๋‹Œ์ง€๋ฅผ ํŒ๋‹จํ•˜๋ฉด ๋˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ํ’€์ด (100+1+|01)+๋ฅผ ์ชผ๊ฐœ์„œ ๋ณด์ž. 100+1+ = A, 01 = B๋ผ๊ณ  ํ•˜๋ฉด, (A|B)+ ์ด๋ฏ€๋กœ, A๋‚˜ B๊ฐ€ ๊ณ„์† ๋ฐ˜๋ณต์ ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋ฉด ๋œ๋‹ค. B๋Š” 01 ์ž์ฒด์ด๊ณ , A ๋Š” 100+..

Algorithm 2021. 10. 26. 21:19
[๋ฐฑ์ค€/Python] 7579. ์•ฑ

๋ฌธ์ œ https://www.acmicpc.net/problem/7579 ์šฐ๋ฆฌ๋Š” ์Šค๋งˆํŠธํฐ์„ ์‚ฌ์šฉํ•˜๋ฉด์„œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์•ฑ(App)์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค. ๋Œ€๊ฐœ์˜ ๊ฒฝ์šฐ ํ™”๋ฉด์— ๋ณด์ด๋Š” ‘์‹คํ–‰ ์ค‘’์ธ ์•ฑ์€ ํ•˜๋‚˜๋ฟ์ด์ง€๋งŒ ๋ณด์ด์ง€ ์•Š๋Š” ์ƒํƒœ๋กœ ๋งŽ์€ ์•ฑ์ด 'ํ™œ์„ฑํ™”'๋˜์–ด ์žˆ๋‹ค. ์•ฑ๋“ค์ด ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ํ™”๋ฉด์— ๋ณด์ด์ง€ ์•Š๋”๋ผ๋„ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ์ง์ „์˜ ์ƒํƒœ๊ฐ€ ๊ธฐ๋ก๋˜์–ด ์žˆ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ด ์•„๋‹ˆ๋”๋ผ๋„ ์ด๋ ‡๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ์— ๋‚จ๊ฒจ๋‘๋Š” ์ด์œ ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ด์ „์— ์‹คํ–‰ํ•˜๋˜ ์•ฑ์„ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ์— ์ง์ „์˜ ์ƒํƒœ๋ฅผ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ๋กœ๋ถ€ํ„ฐ ์ฝ์–ด ๋“ค์—ฌ ์‹คํ–‰ ์ค€๋น„๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งˆ์น˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค. ํ•˜์ง€๋งŒ ์Šค๋งˆํŠธํฐ์˜ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์ œํ•œ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•œ๋ฒˆ์ด๋ผ๋„ ์‹คํ–‰ํ–ˆ๋˜ ๋ชจ๋“  ์•ฑ์„ ํ™œ์„ฑํ™”๋œ ์ฑ„๋กœ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์— ๋‚จ๊ฒจ๋‘๋‹ค ๋ณด๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ ์ƒํƒœ๊ฐ€ ์˜ค๊ธฐ ์‰ฝ๋‹ค. ์ƒˆ๋กœ์šด ..

Algorithm 2021. 10. 12. 15:59
[๋ฐฑ์ค€/Python] 20040. ์‚ฌ์ดํด ๊ฒŒ์ž„

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

Algorithm 2021. 10. 12. 15:44
[CS/DB] Transaction

์ •์˜DB์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์˜ ๋‹จ์œ„๋ฅผ ๋งํ•จ์ƒํƒœ๋ฅผ ๋ณ€ํ™”์‹œํ‚จ๋‹ค๋Š” ๊ฒƒ์€ ์งˆ์˜์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ DB๋ฅผ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์„ ๋งํ•˜๋ฉฐ์ž‘์—…์˜ ๋‹จ์œ„๋Š” ์งˆ์˜์–ด ํ•œ ๋ฌธ์žฅ์„ ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋…ผ๋ฆฌ์ ์ธ ๋‹จ์œ„๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.ํŠน์ง•ACID์›์ž์„ฑ (Atomicity)ํŠธ๋žœ์žญ์…˜์ด DB์— ๋ชจ๋‘ ๋ฐ˜์˜๋˜๋˜๊ฐ€, ์•„๋‹ˆ๋ฉด ์ „ํ˜€ ๋ฐ˜์˜๋˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.์ผ๊ด€์„ฑ (Consistency)ํŠธ๋žœ์žญ์…˜ ์ž‘์—… ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ๊ฐ€ ํ•ญ์ƒ ์ผ๊ด€์„ฑ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.ํŠธ๋žœ์žญ์…˜์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ์— DB๊ฐ€ ๋ณ€๊ฒฝ๋˜๋”๋ผ๋„, ์—…๋ฐ์ดํŠธ๋œ DB๋กœ ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ฒ˜์Œ์— ํŠธ๋žœ์žญ์…˜์„ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ฐธ์กฐํ•œ DB๋กœ ์ง„ํ–‰๋œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ ์‚ฌ์šฉ์ž๋Š” ์ผ๊ด€์„ฑ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.๋…๋ฆฝ์„ฑ (Isolation)๋‘˜ ์ด์ƒ์˜ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ์‹คํ–‰๋˜๊ณ  ์žˆ์„ ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์˜ ์—ฐ์‚ฐ์— ๋ผ์–ด๋“ค ์ˆ˜ ์—†..

TIL 2021. 10. 9. 14:59
[CS/์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ฑฐ์˜ ์ •๋ ฌ๋œ List์—์„œ ์–ด๋–ค ์ •๋ ฌ์ด ๊ฐ€์žฅ ํšจ์œจ์ ์ผ๊นŒ?

์š”์•ฝ์‚ฝ์ž…์ •๋ ฌ์ด ๋ฏธ๋ฆฌ ์ •๋ ฌ๋˜์–ด์žˆ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์—์„œ ๊ฐ€์žฅ ๋น ๋ฅธ ์„ฑ๋Šฅ์„ ๊ฐ€์ง„๋‹ค. ์™œ?๋ฒ„๋ธ”์ •๋ ฌ์€ ์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(N^2)์ด๊ณ ,ํ€ต, ๋จธ์ง€์†ŒํŠธ๋Š” ๋ถ„ํ• -์ •๋ณต ๊ณผ์ •์„ ๊ฑฐ์น˜๊ธฐ ๋•Œ๋ฌธ์— ๋Š๋ฆฌ๋‹ค.์‰˜ ์ •๋ ฌ์€ ๊ฐ„๊ฒฉ์ด k๋ผ๊ณ  ํ–ˆ์„ ๋•Œ, k๊ฐ€ 1์ด๋  ๋•Œ ๊นŒ์ง€ ์ค„์ด๋ฉด์„œ ๋ฐ˜๋ณตํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ด๋ฏธ ์ •๋ ฌ๋œ ์ž๋ฃŒ๊ตฌ์กฐ์—์„œ๋Š” ์‚ฝ์ž…์ •๋ ฌ๋ณด๋‹ค ๋น ๋ฅด์ง€ ์•Š๋‹ค. ** ์ด์ง„ ์‚ฝ์ž… ์ •๋ ฌ์ด ์ผ๋ฐ˜์ ์ธ ์‚ฝ์ž…์ •๋ ฌ๋ณด๋‹ค ๋” ๋น ๋ฅด๋‹ค๊ณ  ๋งํ•  ์ˆ˜ ์žˆ๋‹ค.list๋‚ด์—์„œ ์–ด๋–ค ์›์†Œ์˜ ์œ„์น˜๋ฅผ ์ฐพ์„ ๋•Œ, ์‚ฝ์ž…์ •๋ ฌ์€ 1~n๋ฒˆ์งธ ์›์†Œ๋ฅผ ๋ชจ๋‘ ๋Œ์•„๊ฐ€๋ฉด์„œ ๋ณด์ง€๋งŒ,์ด์ง„ ์‚ฝ์ž…์ •๋ ฌ์€ ์ด ๊ณผ์ •์„ ์ด์ง„ํƒ์ƒ‰์œผ๋กœ ์ง„ํ–‰ํ•ด์„œ O(logN)์˜ ๋ณต์žก๋„๋ฅผ ๊ฐ€์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ** ์–ธ์–ด๋ณ„ ๊ธฐ๋ณธ ์ œ๊ณต sorting ์•Œ๊ณ ๋ฆฌ์ฆ˜Java : Tim Sort, dual pivot quicksortPython : Tim SortC++..

Algorithm 2021. 10. 9. 14:52