๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“š ์ „๊ณต ๊ณต๋ถ€

(55)
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ทธ๋ž˜ํ”„ - ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๊ตฌํ•˜๊ธฐ(cpp) N๊ฐœ์˜ ๋…ธ๋“œ์™€ M๊ฐœ์˜ ์—์ง€๊ฐ€ ์žˆ๋Š” ๊ทธ๋ž˜ํ”„์—์„œ, ์„ธ ๋…ธ๋“œ s, a, t๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ s์—์„œ a๋ฅผ ๋ฐ˜๋“œ์‹œ ์ง€๋‚˜์„œ t๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š” ๊ฐ€์žฅ ์งง์€ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค. ์ฒซ ์ค„์—๋Š” ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜ N๊ณผ ์—์ง€์˜ ๊ฐœ์ˆ˜ M์ด ์ฃผ์–ด์ง„๋‹ค. ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๋Š” 3 ์ด์ƒ 100 ์ดํ•˜์ด๊ณ , ์—์ง€์˜ ๊ฐœ์ˆ˜๋Š” 0๊ฐœ ์ด์ƒ N(N-1)๊ฐœ ์ดํ•˜์ด๋‹ค. ๋‘๋ฒˆ์งธ ์ค„์—๋Š” ์„ธ ์ •์ˆ˜ s a t๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋…ธ๋“œ๋“ค์€ 0 ์ด์ƒ N ๋ฏธ๋งŒ์ธ ์ •์ˆ˜๋“ค๋กœ ํ‘œํ˜„๋˜๋ฉฐ, ์ด ์„ธ์ •์ˆ˜๋Š” ๊ฐ๊ฐ ์‹œ์ž‘ ๋…ธ๋“œ, ์ค‘๊ฐ„ ๋…ธ๋“œ, ๋„์ฐฉ ๋…ธ๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์„ธ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ ์ด M์ค„์— ์—์ง€ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ํ•œ ์ค„์€ ์—์ง€ ํ•˜๋‚˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์„ธ ์ •์ˆ˜ U V W๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. U๋Š” ์—์ง€์˜ ์‹œ์ž‘ ๋…ธ๋“œ, V๋Š” ์—์ง€์˜ ๋„์ฐฉ ๋…ธ๋“œ, W๋Š” ์—์ง€์˜ ๊ฐ€..
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ์‹คํŒจ ํ•จ์ˆ˜ - ์ค‘๋ณต ์ตœ๋Œ€ ๋ถ€๋ถ„๋ฌธ์ž์—ด(cpp) ์˜์–ด ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ์ตœ๋Œ€ ๊ธธ์ด 1,000์ธ ๋ฌธ์ž์—ด์—์„œ, ๋‘ ๋ฒˆ ์ด์ƒ ๋‚˜์˜ค๋ฉด์„œ ๊ฐ€์žฅ ๊ธด ๋ถ€๋ถ„๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์˜ˆ๋ฅผ ๋“ค์–ด, banana์˜ ๊ฒฝ์šฐ ๊ธธ์ด๊ฐ€ 5์ธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์€ banan, anana, ๊ธธ์ด๊ฐ€ 4์ธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์€ bana, anan, nana, ๊ธธ์ด๊ฐ€ 3์ธ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์€ ban, ana, nan, ana์ด๋ฏ€๋กœ ana๊ฐ€ 2๋ฒˆ ๋‚˜์˜ค๋ฉด์„œ ๊ฐ€์žฅ ๊ธธ์ด๊ฐ€ ๊ธธ๋‹ค. ๋‹ต์€ ๋”ฐ๋ผ์„œ ์ด ๊ฒฝ์šฐ 3์ด ๋œ๋‹ค. ํžŒํŠธ: ์‹คํŒจํ•จ์ˆ˜๋ฅผ ์ž˜ ์ด์šฉํ•ด๋ณด์ž. ์ž…๋ ฅ ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค. ์ž…๋ ฅ์€ ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์ตœ๋Œ€ ๊ธธ์ด๊ฐ€ 1,000์ธ ์˜์–ด ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์ด๋‹ค. ์ถœ๋ ฅ ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ์ถœ๋ ฅํ•œ๋‹ค. ์ถœ๋ ฅ์€ ํ•œ ์ค„๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ, ์ž…๋ ฅ๋œ ๋ฌธ์ž์—ด์—์„œ ๋‘๋ฒˆ ์ด์ƒ ๋‚˜์˜ค๋ฉด์„œ ๊ฐ€์žฅ ๊ธธ์ด๊ฐ€ ๊ธด ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์˜..
[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋ฌธ์ž์—ด ๋‹ค๋ฃจ๊ธฐ - ๋กœ๋งˆ์ˆซ์ž(cpp) ๋กœ๋งˆ์ธ๋“ค์€ ๋กœ๋งˆ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. 1์€ I, 5๋Š” V, 10์€ X๋กœ ํ‘œํ˜„ํ–ˆ๊ณ , I, V, X๊ฐ€ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด์€ ๊ฐ ๊ธ€์ž๊ฐ€ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜์˜ ํ•ฉ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด XVI = 10 + 5 + 1 = 16์ด๋‹ค. ๋‹จ, IV๋Š” 4์ด๊ณ  IX๋Š” 9์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด IVI = 4 + 1 = 5์ด๋‹ค. ์œ„์˜ ์˜ˆ์™ธ์— ์ถ”๊ฐ€๋กœ, IIV๋Š” 3์ด๊ณ  IIX๋Š” 8์ด๋ผ๊ณ  ํ•˜์ž. ๋ฐ˜๋“œ์‹œ IIV, IIX๋Š” 3, 8์ด์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰ IIV๋Š” 1 + 1 + 5 = 7๋„ ์•„๋‹ˆ๊ณ , 1 + 4 = 5๋„ ์•„๋‹ˆ๊ณ , ๋ฐ˜๋“œ์‹œ 3์ด์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ตœ๋Œ€ ๊ธธ์ด๊ฐ€ 10์ธ ๋กœ๋งˆ ์ˆซ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์งˆ ๋•Œ ์ด ๋ฌธ์ž์—ด์ด ๋‚˜ํƒ€๋‚ด๋Š” ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ์ž…๋ ฅ์„ ๋ฐ›๋Š”๋‹ค. ์ตœ๋Œ€ ๊ธธ์ด๊ฐ€ 10์ธ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง€๊ณ , ์ด ๋ฌธ์ž์—ด์€ I, ..
[์•Œ๊ณ ๋ฆฌ์ฆ˜] DP - ๊ณ„๋‹จ ์˜ค๋ฅด๊ธฐ(cpp) N๋‹จ์˜ ๊ณ„๋‹จ์ด ์žˆ๊ณ , ํ•œ๋ฒˆ์— ๊ณ„๋‹จ์„ ํ•œ ๋‹จ ๋˜๋Š” ๋‘ ๋‹จ์„ ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•˜์ž. ์ตœ๋Œ€ ๋‘ ๊ตฐ๋ฐ์˜ ๊ณ„๋‹จ์—๋Š” ์žฅ์• ๋ฌผ์ด ์žˆ์–ด์„œ ์˜ฌ๋ผ๊ฐˆ ์ˆ˜ ์—†๋‹ค. ์ด ๋•Œ N๋‹จ๊นŒ์ง€ ์˜ฌ๋ผ๊ฐ€๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ ํ‘œ์ค€์ž…๋ ฅ์œผ๋กœ ์„ธ ์ •์ˆ˜ N A B๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. N์€ ๊ณ„๋‹จ์˜ ๋‹จ์ˆ˜๋กœ, 1 ์ด์ƒ 30 ์ดํ•˜์ด๋‹ค. A์™€ B๋Š” ์žฅ์• ๋ฌผ์ด ์žˆ๋Š” ๊ณ„๋‹จ์˜ ์œ„์น˜์ด๋‹ค. A์™€ B๋Š” 0 ์ด์ƒ N ์ดํ•˜์ธ ์ˆ˜์ด๋ฉฐ, A์™€ B๊ฐ€ ๊ฐ™์„ ์ˆ˜ ์žˆ๋‹ค. A, B ๊ฐ’์ด 0์ด๋ผ๋ฉด, ์ด๋Š” ์žฅ์• ๋ฌผ์ด ์—†๋‹ค๋Š” ๋œป์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด N, A, B๊ฐ€ 3, 0, 1์ด๋ผ๊ณ  ์ฃผ์–ด์ง€๋ฉด ์ด 3๋‹จ์˜ ๊ณ„๋‹จ์ด ์žˆ๊ณ , ์žฅ์• ๋ฌผ์€ 1๋‹จ์—๋งŒ ์žˆ๋‹ค. ์กฐ๊ธˆ ๋” ์ƒ๊ฐํ•ด๋ณด๋ฉด N, A, B๊ฐ€ 3, 1, 0์œผ๋กœ ์ฃผ์–ด์ ธ๋„ ๊ฐ™๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ถœ๋ ฅ ํ‘œ์ค€์ถœ๋ ฅ์œผ๋กœ ํ•˜๋‚˜์˜ ์ •์ˆ˜๋ฅผ ์ถœ๋ ฅ..
[SQL] mysql ๋ฌธ์ž์—ด ํ•จ์ˆ˜ ์ด์šฉ ์—ฐ์Šต๋ฌธ์ œ, ์˜ˆ์ œ ๋ฒˆ์—ญ๊ธฐ ๋Œ๋ฆฐ๊ฑฐ๋ผ ์–ด์ƒ‰ํ•œ ๋ฌธ์žฅ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค! ๊ทธ๋ž˜๋„ ์ดํ•ดํ• ๋งŒํ•จ.. ์—ฐ์Šต์šฉ์œผ๋กœ ๋Œ€์ถฉ ๋ณด๋ ค๊ณ  ์จ๋†“๋Š”๊ฑฐ๋ผ ๋ฌธ์ฒด ์ด์ƒํ•ด๋„ ๋ฌด์‹œํ•จ chatGPT๊ฐ€ ์ œ์•ˆํ•ด์ค€ mysql ๋ฌธ์ž์—ด ํ•จ์ˆ˜ ์ด์šฉ ๋ฌธ์ œ์™€ ์˜ˆ์‹œ ๋‹ต์•ˆ์ž…๋‹ˆ๋‹ค~ ๋ฌธ์ œ1 : users๋ผ๊ณ  ํ•˜๋Š” ํ…Œ์ด๋ธ”์ด ์žˆ๋Š”๋ฐ ์ปฌ๋Ÿผ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.full_name๊ฐ ์‚ฌ์šฉ์ž์˜ ์ด๋ฆ„๊ณผ ์„ฑ์„ ์ถ”์ถœํ•˜์—ฌ ๋‹ค๋ฅธ ์—ด์— ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉดSUBSTRING_INDEX()์—์„œ ์„ฑ๊ณผ ์ด๋ฆ„์„ ์ถ”์ถœํ•˜๋Š” ํ•จ์ˆ˜full_name๊ธฐ๋‘ฅ. ๋‹ค์Œ์€ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ฟผ๋ฆฌ์ž…๋‹ˆ๋‹ค. SELECT full_name, SUBSTRING_INDEX(full_name, ' ', 1) AS first_name, SUBSTRING_INDEX(full_name, ' ', -1) AS last_name FROM user..
[SQL] mysql ๋ฌธ์ž์—ด์„ ๋‹ค๋ฃจ๋Š” ํ•จ์ˆ˜ ์ถ”๊ฐ€ ์ •๋ฆฌ ์„œ๋ธŒ์ŠคํŠธ๋ง ํ•จ์ˆ˜ LEFT(): ๋ฌธ์ž์—ด์—์„œ ๋งจ ์™ผ์ชฝ ๋ฌธ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. SELECT LEFT('Hello World', 5); -- Output: Hello RIGHT(): ๋ฌธ์ž์—ด์—์„œ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ๋ฌธ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. SELECT RIGHT('Hello World', 5); -- Output: World SUBSTRING(): ์ง€์ •ํ•œ ์œ„์น˜์—์„œ ์‹œ์ž‘ํ•˜๋Š” ๋ฌธ์ž์—ด์—์„œ ํ•˜์œ„ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. SELECT SUBSTRING('Hello World', 7); -- Output: World SUBSTRING_INDEX(): ์ง€์ •ํ•œ ์œ„์น˜์—์„œ ์‹œ์ž‘ํ•˜์—ฌ ์ง€์ •๋œ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด์—์„œ ํ•˜์œ„ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. SELECT SUBSTRING_INDEX('www.example.com', '.', 2); -- Outp..
[SQL] mysql ๋‚ด์žฅํ•จ์ˆ˜ ์ •๋ฆฌ ๋ฌธ์ž์—ด ํ•จ์ˆ˜ CONCAT(): 2๊ฐœ ์ด์ƒ์˜ ๋ฌธ์ž์—ด์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. SELECT CONCAT('Hello', 'World'); -- Output: HelloWorld SUBSTR(): ๋ฌธ์ž์—ด์—์„œ ํ•˜์œ„ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. SELECT SUBSTR('Hello World', 7); -- Output: World UPPER(): ๋ฌธ์ž์—ด์„ ๋Œ€๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. SELECT UPPER('Hello World'); -- Output: HELLO WORLD LOWER(): ๋ฌธ์ž์—ด์„ ์†Œ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. SELECT LOWER('Hello World'); -- Output: hello world LENGTH(): ๋ฌธ์ž์—ด ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. SELECT LENGTH('Hello World'); -- Output: 11 ์ˆซ..
[์•Œ๊ณ ๋ฆฌ์ฆ˜] Greedy algorithm - ์ด์ง‘ํŠธ ๋‚˜๋ˆ—์…ˆ(cpp) ๋ฌธ์ œ ์ด์ง‘ํŠธ ๋‚˜๋ˆ—์…ˆ์„ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์ž…๋ ฅ p/q๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋‘ ์ •์ˆ˜ p, q๊ฐ€ ์‚ฌ์ด์— ๊ณต๋ฐฑ์„ ํ•˜๋‚˜ ๋‘๊ณ  ์ฃผ์–ด์ง„๋‹ค. p๋Š” 1 ์ด์ƒ 1,000 ์ดํ•˜, q๋Š” p+1 ์ด์ƒ 2,000 ์ดํ•˜์ธ ์ •์ˆ˜ ์ถœ๋ ฅ ์ˆ˜์—… ์‹œ๊ฐ„์— ๋ฐฐ์šด ์ด์ง‘ํŠธ ๋‚˜๋ˆ—์…ˆ์˜ ๊ฒฐ๊ณผ๋กœ ๋ช‡ ๊ฐœ์˜ ๋ถ„์ˆ˜๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 5/6์€ 1/2 + 1/3์ด๋ฏ€๋กœ 2๊ฐœ์˜ ๋ถ„์ˆ˜๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์˜ˆ์ œ ์ž…๋ ฅ 1 5 6 ์˜ˆ์ œ ์ถœ๋ ฅ 1 2 ์˜ˆ์ œ ์ž…๋ ฅ 2 19 20 ์˜ˆ์ œ ์ถœ๋ ฅ 2 4 ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—…์˜ ์ฒซ ๊ณผ์ œ์˜€๋‹ค. ์ด์ง‘ํŠธ ๋‚˜๋ˆ—์…ˆ์ด๋ž€, ์œ ๋ฆฌ์ˆ˜ p/q๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ๋ถ„์ž๊ฐ€ 1์ธ ๋ถ„์ˆ˜๋“ค์˜ ํ•ฉ์œผ๋กœ p/q๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์˜ˆ) 5/6 = 1/2 + 1/3 , 3/4 = 1/2 + 1/4 ์š•์‹ฌ์Ÿ์ด ๊ธฐ๋ฒ•, ํ”ํžˆ Greedy ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ’€์ดํ•  ..