๋ชฉ๋กAlgorithm (101)

Hello Ocean! ๐ŸŒผ

[๋ฐฑ์ค€/C++] 1520. ๋‚ด๋ฆฌ๋ง‰ ๊ธธ

๋ฌธ์ œ www.acmicpc.net/problem/1520 1520๋ฒˆ: ๋‚ด๋ฆฌ๋ง‰ ๊ธธ ์—ฌํ–‰์„ ๋– ๋‚œ ์„ธ์ค€์ด๋Š” ์ง€๋„๋ฅผ ํ•˜๋‚˜ ๊ตฌํ•˜์˜€๋‹ค. ์ด ์ง€๋„๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ง์‚ฌ๊ฐํ˜• ๋ชจ์–‘์ด๋ฉฐ ์—ฌ๋Ÿฌ ์นธ์œผ๋กœ ๋‚˜๋‰˜์–ด์ ธ ์žˆ๋‹ค. ํ•œ ์นธ์€ ํ•œ ์ง€์ ์„ ๋‚˜ํƒ€๋‚ด๋Š”๋ฐ ๊ฐ ์นธ์—๋Š” ๊ทธ ์ง€์ ์˜ ๋†’์ด๊ฐ€ ์“ฐ์—ฌ ์žˆ์œผ www.acmicpc.net ํ’€์ด ์ฒ˜์Œ์—๋Š” DP๋งŒ ์ด์šฉํ•ด์„œ, cache[i][j]์— (i,j) ์œ„์น˜๊นŒ์ง€ ๋„์ฐฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋‚ด๋ฆฌ๋ง‰๊ธธ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋ ค๊ณ  ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์ƒํ•˜์ขŒ์šฐ๋กœ ๋ชจ๋‘ ์ด๋™์ด ๊ฐ€๋Šฅํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ฐฉ๋ฒ•์€ ์‹คํŒจํ–ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ์ƒ๊ฐ๋‚œ ๋ฐฉ๋ฒ•์€, ์ตœ๋‹จ๊ฒฝ๋กœ์ฐพ๊ธฐ ๋ฌธ์ œ๋กœ ํ•ด์„ํ•ด์„œ BFS๋กœ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๋‹ค. ํ•˜์ง€๋งŒ, ์‹œ๊ฐ„์ดˆ๊ณผ ๋•Œ๋ฌธ์— ์ด ๋ฐฉ๋ฒ•์€ ์‹คํŒจํ–ˆ๋‹ค. ์ตœ์ข… ๋ฐฉ๋ฒ•์€, DFS์— DP๋ฅผ ์ ‘๋ชฉํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค. DFS๋กœ ํƒ์ƒ‰ํ•˜๋˜, DP์˜ ๋ฉ”๋ชจ๋ฆฌ..

Algorithm 2021. 3. 14. 23:11
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/C++] ํ•ฉ์Šน ํƒ์‹œ ์š”๊ธˆ

๋ฌธ์ œ ์„ค๋ช… [๋ณธ ๋ฌธ์ œ๋Š” ์ •ํ™•์„ฑ๊ณผ ํšจ์œจ์„ฑ ํ…Œ์ŠคํŠธ ๊ฐ๊ฐ ์ ์ˆ˜๊ฐ€ ์žˆ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.] ๋ฐค๋Šฆ๊ฒŒ ๊ท€๊ฐ€ํ•  ๋•Œ ์•ˆ์ „์„ ์œ„ํ•ด ํ•ญ์ƒ ํƒ์‹œ๋ฅผ ์ด์šฉํ•˜๋˜ ๋ฌด์ง€๋Š” ์ตœ๊ทผ ์•ผ๊ทผ์ด ์žฆ์•„์ ธ ํƒ์‹œ๋ฅผ ๋” ๋งŽ์ด ์ด์šฉํ•˜๊ฒŒ ๋˜์–ด ํƒ์‹œ๋น„๋ฅผ ์•„๋‚„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. "๋ฌด์ง€"๋Š” ์ž์‹ ์ด ํƒ์‹œ๋ฅผ ์ด์šฉํ•  ๋•Œ ๋™๋ฃŒ์ธ ์–ดํ”ผ์น˜ ์—ญ์‹œ ์ž์‹ ๊ณผ ๋น„์Šทํ•œ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๋Š” ํƒ์‹œ๋ฅผ ์ข…์ข… ์ด์šฉํ•˜๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. "๋ฌด์ง€"๋Š” "์–ดํ”ผ์น˜"์™€ ๊ท€๊ฐ€ ๋ฐฉํ–ฅ์ด ๋น„์Šทํ•˜์—ฌ ํƒ์‹œ ํ•ฉ์Šน์„ ์ ์ ˆํžˆ ์ด์šฉํ•˜๋ฉด ํƒ์‹œ์š”๊ธˆ์„ ์–ผ๋งˆ๋‚˜ ์•„๋‚„ ์ˆ˜ ์žˆ์„ ์ง€ ๊ณ„์‚ฐํ•ด ๋ณด๊ณ  "์–ดํ”ผ์น˜"์—๊ฒŒ ํ•ฉ์Šน์„ ์ œ์•ˆํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์œ„ ์˜ˆ์‹œ ๊ทธ๋ฆผ์€ ํƒ์‹œ๊ฐ€ ์ด๋™ ๊ฐ€๋Šฅํ•œ ๋ฐ˜๊ฒฝ์— ์žˆ๋Š” 6๊ฐœ ์ง€์  ์‚ฌ์ด์˜ ์ด๋™ ๊ฐ€๋Šฅํ•œ ํƒ์‹œ๋…ธ์„ ๊ณผ ์˜ˆ์ƒ์š”๊ธˆ์„ ๋ณด์—ฌ์ฃผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆผ์—์„œ A์™€ B ๋‘ ์‚ฌ๋žŒ์€ ์ถœ๋ฐœ์ง€์ ์ธ 4๋ฒˆ ์ง€์ ์—์„œ ์ถœ๋ฐœํ•ด..

Algorithm 2021. 3. 1. 11:00
[๋ฐฑ์ค€/C++] 1175. ๋ฐฐ๋‹ฌ

๋ฌธ์ œ ์ถœ์ฒ˜ www.acmicpc.net/problem/1175 1175๋ฒˆ: ๋ฐฐ๋‹ฌ ์–ด์ œ ์„ ๋ฌผ์„ ๋ชจ๋‘ ํฌ์žฅํ•œ ๋ฏผ์‹์ด๋Š” ์ด์ œ ์„ ๋ฌผ์„ ๋ฐฐ๋‹ฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋ฏผ์‹์ด๊ฐ€ ์„ ๋ฌผ์„ ๋ฐฐ๋‹ฌํ•  ๊ณณ์€ ์ด ๋ฌธ์ œ๋ฅผ ์ฝ๋Š” ์‚ฌ๋žŒ๋“ค์ด ์•‰์•„ ์žˆ๋Š” ๊ต์‹ค์ด๋‹ค. ๊ต์‹ค์€ ์ง์‚ฌ๊ฐํ˜•๋ชจ์–‘์ด๊ณ , ๋ชจ๋‘ ๊ฐ™์€ ํฌ๊ธฐ์˜ ์ •์‚ฌ www.acmicpc.net ๋ฌธ์ œ ์–ด์ œ ์„ ๋ฌผ์„ ๋ชจ๋‘ ํฌ์žฅํ•œ ๋ฏผ์‹์ด๋Š” ์ด์ œ ์„ ๋ฌผ์„ ๋ฐฐ๋‹ฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๋ฏผ์‹์ด๊ฐ€ ์„ ๋ฌผ์„ ๋ฐฐ๋‹ฌํ•  ๊ณณ์€ ์ด ๋ฌธ์ œ๋ฅผ ์ฝ๋Š” ์‚ฌ๋žŒ๋“ค์ด ์•‰์•„ ์žˆ๋Š” ๊ต์‹ค์ด๋‹ค. ๊ต์‹ค์€ ์ง์‚ฌ๊ฐํ˜•๋ชจ์–‘์ด๊ณ , ๋ชจ๋‘ ๊ฐ™์€ ํฌ๊ธฐ์˜ ์ •์‚ฌ๊ฐํ˜• ๋ธ”๋ก์œผ๋กœ ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค. ์ž…๋ ฅ์œผ๋กœ ๊ต์‹ค์˜ ์ง€๋„๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ๊ฐ์˜ ์ •์‚ฌ๊ฐํ˜• ๋ธ”๋ก์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 4๊ฐ€์ง€ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค. S : ์ง€๊ธˆ ๋ฏผ์‹์ด๊ฐ€ ์žˆ๋Š” ๊ณณ์ด๋‹ค. ์ด๊ณณ์ด ๋ฏผ์‹์ด๊ฐ€ ๋ฐฐ๋‹ฌ์„ ์‹œ์ž‘ํ•˜๋Š” ๊ณณ์ด๋‹ค. C : ๋ฏผ์‹์ด๊ฐ€ ๋ฐ˜๋“œ์‹œ ์„ ..

Algorithm 2021. 2. 26. 01:40
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/C++] ์‹ ๊ทœ ์•„์ด๋”” ์ถ”์ฒœ

๋ฌธ์ œ ์„ค๋ช… ์ƒˆ๋กœ ๊ฐ€์ž…ํ•˜๋Š” ์œ ์ €๋“ค์ด ์นด์นด์˜ค ์•„์ด๋”” ๊ทœ์น™์— ๋งž์ง€ ์•Š๋Š” ์•„์ด๋””๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ, ์ž…๋ ฅ๋œ ์•„์ด๋””์™€ ์œ ์‚ฌํ•˜๋ฉด์„œ ๊ทœ์น™์— ๋งž๋Š” ์•„์ด๋””๋ฅผ ์ถ”์ฒœํ•ด์ฃผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์นด์นด์˜ค ์•„์ด๋””์˜ ๊ทœ์น™์ž…๋‹ˆ๋‹ค. ์•„์ด๋””์˜ ๊ธธ์ด๋Š” 3์ž ์ด์ƒ 15์ž ์ดํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์•„์ด๋””๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž, ์ˆซ์ž, ๋นผ๊ธฐ(-), ๋ฐ‘์ค„(_), ๋งˆ์นจํ‘œ(.) ๋ฌธ์ž๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, ๋งˆ์นจํ‘œ(.)๋Š” ์ฒ˜์Œ๊ณผ ๋์— ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๋˜ํ•œ ์—ฐ์†์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋„ค์˜ค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด 7๋‹จ๊ณ„์˜ ์ˆœ์ฐจ์ ์ธ ์ฒ˜๋ฆฌ ๊ณผ์ •์„ ํ†ตํ•ด ์‹ ๊ทœ ์œ ์ €๊ฐ€ ์ž…๋ ฅํ•œ ์•„์ด๋””๊ฐ€ ์นด์นด์˜ค ์•„์ด๋”” ๊ทœ์น™์— ๋งž๋Š” ์ง€ ๊ฒ€์‚ฌํ•˜๊ณ  ๊ทœ์น™์— ๋งž์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ทœ์น™์— ๋งž๋Š” ์ƒˆ๋กœ์šด ์•„์ด๋””๋ฅผ ์ถ”์ฒœํ•ด ์ฃผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์‹ ๊ทœ ์œ ์ €๊ฐ€ ์ž…๋ ฅํ•œ ์•„์ด๋””๊ฐ€ new_id ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, 1๋‹จ๊ณ„ ..

Algorithm 2021. 2. 8. 11:44
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/C++] ๋งค์นญ ์ ์ˆ˜

๋ฌธ์ œ ์„ค๋ช… ์ฃผ์–ด์ง„ ๊ฒ€์ƒ‰์–ด์— ๋Œ€ํ•œ ์›น ํŽ˜์ด์ง€์˜ ๋งค์นญ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ด์„œ, ๋งค์นญ์ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ํฐ ์›น ํŽ˜์ด์ง€์˜ ์ธ๋ฑ์Šค ๊ตฌํ•˜๊ธฐ ๋งŒ์•ฝ ๊ทธ๋Ÿฐ ์›นํŽ˜์ด์ง€๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ๋ผ๋ฉด ๊ทธ์ค‘ ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ์„ ๊ตฌํ•˜๊ธฐ ๊ฐ ํŽ˜์ด์ง€๋ณ„๋กœ 4 ๊ฐ€์ง€์˜ ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ ์ ์ˆ˜ : ์›น ํŽ˜์ด์ง€์—์„œ ๊ฒ€์ƒ‰์–ด๊ฐ€ ๋“ฑ์žฅํ•˜๋Š” ํšŸ์ˆ˜ (๋Œ€์†Œ๋ฌธ์ž ๋ฌด์‹œ) ์™ธ๋ถ€ ๋งํฌ ์ˆ˜ : ํ•ด๋‹น ํŽ˜์ด์ง€์— ์กด์žฌํ•˜๋Š”, ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ๊ฑธ๋ฆฐ ๋งํฌ์˜ ์ˆ˜ ๋งํฌ ์ ์ˆ˜ : [ํ•ด๋‹น ํŽ˜์ด์ง€(A)์˜ ๋งํฌ๊ฐ€ ์กด์žฌํ•˜๋Š” ๋‹ค๋ฅธ ํŽ˜์ด์ง€(B)์˜ ๊ธฐ๋ณธ ์ ์ˆ˜ / B์˜ ์™ธ๋ถ€ ๋งํฌ ์ˆ˜]์˜ ์ดํ•ฉ ๋งค์นญ ์ ์ˆ˜ : ๊ธฐ๋ณธ ์ ์ˆ˜ + ๋งํฌ ์ ์ˆ˜ ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด A, B, C ์„ธ ๊ฐœ์˜ ์›นํŽ˜์ด์ง€๊ฐ€ ์žˆ๊ณ , ๊ฒ€์ƒ‰์–ด๊ฐ€ hi๋ผ๊ณ  ํ•˜์ž. ์ด๋•Œ A ์›นํŽ˜์ด์ง€์˜ ๋งค์นญ์ ์ˆ˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋ณธ ์ ์ˆ˜๋Š” ๊ฐ ์›นํŽ˜์ด์ง€์—์„œ h..

Algorithm 2021. 2. 3. 12:20