๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐Ÿ“š Language & CS knowledge/Algorithm (๊ธฐ์ดˆ๋ฌธ์ œํ’€์ด) (74)

Daehyunii's Dev-blog

๋ชจ๋“  ์•„๋‚˜๊ทธ๋žจ ์ฐพ๊ธฐ(ํšจ์œจ์„ฑ-ํ•ด์‰ฌ,ํˆฌํฌ์ธํ„ฐ,์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) S๋ฌธ์ž์—ด์—์„œ T๋ฌธ์ž์—ด๊ณผ ์•„๋‚˜๊ทธ๋žจ์ด ๋˜๋Š” S์˜ ๋ถ€๋ถ„๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜ ์„ธ์š”. ์•„๋‚˜๊ทธ๋žจ ํŒ๋ณ„์‹œ ๋Œ€์†Œ๋ฌธ์ž๊ฐ€ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. ๋ถ€๋ถ„๋ฌธ์ž์—ด์€ ์—ฐ์†๋œ ๋ฌธ์ž์—ด์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. โ–ฃ ์ž…๋ ฅ์„ค๋ช… ์ฒซ ์ค„์— ์ฒซ ๋ฒˆ์งธ S๋ฌธ์ž์—ด์ด ์ž…๋ ฅ๋˜๊ณ , ๋‘ ๋ฒˆ์งธ ์ค„์— T๋ฌธ์ž์—ด์ด ์ž…๋ ฅ๋ฉ๋‹ˆ๋‹ค. S๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 10,000์„ ๋„˜์ง€ ์•Š์œผ๋ฉฐ, T๋ฌธ์ž์—ด์€ S๋ฌธ์ž์—ด๋ณด๋‹ค ๊ธธ์ด๊ฐ€ ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์Šต๋‹ˆ๋‹ค. โ–ฃ ์ถœ๋ ฅ์„ค๋ช… S๋‹จ์–ด์— T๋ฌธ์ž์—ด๊ณผ ์•„๋‚˜๊ทธ๋žจ์ด ๋˜๋Š” ๋ถ€๋ถ„๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. โ–ฃ ์ž…๋ ฅ์˜ˆ์ œ 1 bacaAacba abc โ–ฃ ์ถœ๋ ฅ์˜ˆ์ œ 1 3 ์ถœ๋ ฅ์„ค๋ช…: {bac}, {acb}, {cba} 3๊ฐœ์˜ ๋ถ€๋ถ„๋ฌธ์ž์—ด์ด "abc"๋ฌธ์ž์—ด๊ณผ ์•„๋‚˜๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. Tip ๋ฌธ์ œํ’€์ด //๊ฐ•์˜ ์„ค๋ช…๋งŒ ๋“ฃ..

์•„๋‚˜๊ทธ๋žจ(ํšจ์œจ์„ฑ-ํ•ด์‰ฌ)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) Anagram์ด๋ž€ ๋‘ ๋ฌธ์ž์—ด์ด ์•ŒํŒŒ๋ฒณ์˜ ๋‚˜์—ด ์ˆœ์„œ๋ฅผ ๋‹ค๋ฅด์ง€๋งŒ ๊ทธ ๊ตฌ์„ฑ์ด ์ผ์น˜ํ•˜๋ฉด ๋‘ ๋‹จ์–ด๋Š” ์•„ ๋‚˜๊ทธ๋žจ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด AbaAeCe ์™€ baeeACA ๋Š” ์•ŒํŒŒ๋ฒณ์„ ๋‚˜์—ด ์ˆœ์„œ๋Š” ๋‹ค๋ฅด์ง€๋งŒ ๊ทธ ๊ตฌ์„ฑ์„ ์‚ดํŽด๋ณด๋ฉด A(2), a(1), b(1), C(1), e(2)๋กœ ์•ŒํŒŒ๋ฒณ๊ณผ ๊ทธ ๊ฐœ์ˆ˜๊ฐ€ ๋ชจ๋‘ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ ์–ด๋Š ํ•œ ๋‹จ์–ด๋ฅผ ์žฌ ๋ฐฐ์—ดํ•˜๋ฉด ์ƒ๋Œ€ํŽธ ๋‹จ์–ด๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์•„๋‚˜๊ทธ๋žจ์ด๋ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธธ์ด๊ฐ€ ๊ฐ™์€ ๋‘ ๊ฐœ์˜ ๋‹จ์–ด๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ๋‘ ๋‹จ์–ด๊ฐ€ ์•„๋‚˜๊ทธ๋žจ์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ ์š”. ์•„๋‚˜๊ทธ๋žจ ํŒ๋ณ„์‹œ ๋Œ€์†Œ๋ฌธ์ž๊ฐ€ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค. โ–ฃ ์ž…๋ ฅ์„ค๋ช… ์ฒซ ์ค„์— ์ฒซ ๋ฒˆ์งธ ๋‹จ์–ด๊ฐ€ ์ž…๋ ฅ๋˜๊ณ , ๋‘ ๋ฒˆ์งธ ์ค„์— ๋‘ ๋ฒˆ์งธ ๋‹จ์–ด๊ฐ€ ์ž…๋ ฅ๋ฉ๋‹ˆ๋‹ค. ๋‹จ์–ด์˜ ๊ธธ์ด๋Š” 100์„..

ํ•™๊ธ‰ ํšŒ์žฅ(ํšจ์œจ์„ฑ-ํ•ด์‰ฌ)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) ํ•™๊ธ‰ ํšŒ์žฅ์„ ๋ฝ‘๋Š”๋ฐ ํ›„๋ณด๋กœ ๊ธฐํ˜ธ A, B, C, D, E ํ›„๋ณด๊ฐ€ ๋“ฑ๋ก์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํˆฌํ‘œ์šฉ์ง€์—๋Š” ๋ฐ˜ ํ•™์ƒ๋“ค์ด ์ž๊ธฐ๊ฐ€ ์„ ํƒํ•œ ํ›„๋ณด์˜ ๊ธฐํ˜ธ(์•ŒํŒŒ๋ฒณ)๊ฐ€ ์“ฐ์—ฌ์ ธ ์žˆ์œผ๋ฉฐ ์„ ์ƒ๋‹˜์€ ๊ทธ ๊ธฐํ˜ธ๋ฅผ ๋ฐœํ‘œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ์ƒ๋‹˜์˜ ๋ฐœํ‘œ๊ฐ€ ๋๋‚œ ํ›„ ์–ด๋–ค ๊ธฐํ˜ธ์˜ ํ›„๋ณด๊ฐ€ ํ•™๊ธ‰ ํšŒ์žฅ์ด ๋˜์—ˆ๋Š”์ง€ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘ ์„ฑํ•˜์„ธ์š”. ๋ฐ˜๋“œ์‹œ ํ•œ ๋ช…์˜ ํ•™๊ธ‰ํšŒ์žฅ์ด ์„ ์ถœ๋˜๋„๋ก ํˆฌํ‘œ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. โ–ฃ ์ž…๋ ฅ์„ค๋ช… ์ฒซ ์ค„์—๋Š” ๋ฐ˜ ํ•™์ƒ์ˆ˜ N(5

์ตœ๋Œ€ ๋งค์ถœ(ํšจ์œจ์„ฑ-์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„์šฐ)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) ํ˜„์ˆ˜์˜ ์•„๋น ๋Š” ์ œ๊ณผ์ ์„ ์šด์˜ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์ˆ˜ ์•„๋น ๋Š” ํ˜„์ˆ˜์—๊ฒŒ N์ผ ๋™์•ˆ์˜ ๋งค์ถœ๊ธฐ๋ก์„ ์ฃผ๊ณ  ์—ฐ์† ๋œ K์ผ ๋™์•ˆ์˜ ์ตœ๋Œ€ ๋งค์ถœ์•ก์ด ์–ผ๋งˆ์ธ์ง€ ๊ตฌํ•˜๋ผ๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ N=10์ด๊ณ  10์ผ ๊ฐ„์˜ ๋งค์ถœ๊ธฐ๋ก์ด ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์ด๋•Œ K=3์ด๋ฉด 12 15 11 20 25 10 20 19 13 15 ์—ฐ์†๋œ 3์ผ๊ฐ„์˜ ์ตœ๋Œ€ ๋งค์ถœ์•ก์€ 11+20+25=56๋งŒ์›์ž…๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ๋ถ„์ด ํ˜„์ˆ˜๋ฅผ ๋„์™€์ฃผ์„ธ์š”. โ–ฃ ์ž…๋ ฅ์„ค๋ช… ์ฒซ ์ค„์— N(5

์—ฐ์† ๋ถ€๋ถ„์ˆ˜์—ด2(ํšจ์œจ์„ฑ-ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) N๊ฐœ์˜ ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.์ด ์ˆ˜์—ด์—์„œ ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ์ด ํŠน์ •์ˆซ์ž M์ดํ•˜๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ช‡ ๋ฒˆ ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๋งŒ์•ฝ N=5, M=5์ด๊ณ  ์ˆ˜์—ด์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋ฉด 13123 ํ•ฉ์ด 5์ดํ•˜๊ฐ€ ๋˜๋Š” ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์€ {1}, {3}, {1}, {2}, {3}, {1, 3}, {3, 1}, {1, 2}, {2, 3}, {1, 3, 1}๋กœ ์ด 10๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. โ–ฃ ์ž…๋ ฅ์„ค๋ช… ์ฒซ์งธ ์ค„์— N(1≤N≤100,000), M(1≤M≤100,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ์ˆ˜์—ด์˜ ์›์†Œ๊ฐ’์€ 1,000์„ ๋„˜์ง€ ์•Š๋Š” ์ž์—ฐ์ˆ˜์ด๋‹ค. โ–ฃ ์ถœ๋ ฅ์„ค๋ช… ์ฒซ์งธ ์ค„์— ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. โ–ฃ ์ž…๋ ฅ์˜ˆ์ œ 1 5 5 1 3 1 2 3 โ–ฃ ์ถœ๋ ฅ์˜ˆ์ œ 1 1..

์—ฐ์† ๋ถ€๋ถ„์ˆ˜์—ด1(ํšจ์œจ์„ฑ-ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜)

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ) N๊ฐœ์˜ ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ ์ˆ˜์—ด์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.์ด ์ˆ˜์—ด์—์„œ ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์˜ ํ•ฉ์ด ํŠน์ •์ˆซ์ž M์ด ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ช‡ ๋ฒˆ ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.๋งŒ์•ฝ N=8, M=6์ด๊ณ  ์ˆ˜์—ด์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋ฉด 12131112 ํ•ฉ์ด 6์ด ๋˜๋Š” ์—ฐ์†๋ถ€๋ถ„์ˆ˜์—ด์€ {2, 1, 3}, {1, 3, 1, 1}, {3, 1, 1, 1}๋กœ ์ด 3๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. โ–ฃ ์ž…๋ ฅ์„ค๋ช… ์ฒซ์งธ ์ค„์— N(1≤N≤100,000), M(1≤M≤100,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ์ˆ˜์—ด์˜ ์›์†Œ๊ฐ’์€ 1,000์„ ๋„˜์ง€ ์•Š๋Š” ์ž์—ฐ์ˆ˜์ด๋‹ค. โ–ฃ ์ถœ๋ ฅ์„ค๋ช… ์ฒซ์งธ ์ค„์— ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. โ–ฃ ์ž…๋ ฅ์˜ˆ์ œ 1 8 6 12131112 โ–ฃ ์ถœ๋ ฅ์˜ˆ์ œ 1 3 Tip ๋ฌธ์ œํ’€์ด //๊ฐ•์˜ ๋“ฃ๊ณ  ๋‚ด๊ฐ€ ๋‹ค์‹œ ์ž‘์„ฑํ•œ ๋‹ต func..