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

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

Unfazedโ—๏ธ๐ŸŽฏ

๋ฐ์ดํ„ฐ ์ „์†ก - ์˜ค๋ฅ˜์ œ์–ด

๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต ํ”„๋กœํ† ์ฝœ์ด ๋ฌผ๋ฆฌ ๊ณ„์ธต์˜ ์ „์†ก ์˜ค๋ฅ˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์—ฌ๋ถ€๋ฅผ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค.์˜ค๋ฅ˜์˜ ์ข…๋ฅ˜ : ํ”„๋ ˆ์ž„ ๋ณ€ํ˜•, ํ”„๋ ˆ์ž„ ๋ถ„์‹ค์˜ค๋ฅ˜ ๋ณต๊ตฌ : ์ผ๋ฐ˜์ ์œผ๋กœ ์žฌ์ „์†ก์ „์†ก ์˜ค๋ฅ˜ ๋ฌธ์ œ๋Š” ๋‹ค๋ฅธ ๊ณ„์ธต์—์„œ๋„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•˜์œ„ ๊ณ„์ธต์˜ ์ „์†ก ์˜ค๋ฅ˜๋Š” ์ƒ์œ„ ๊ณ„์ธต์—์„œ ๋ณต๊ตฌํ•ด์•ผ ํ•œ๋‹ค. ์ „์†ก ์˜ค๋ฅ˜์˜ ์œ ํ˜•์˜ค๋ฅ˜ ๋ณต๊ตฌ๋ฅผ ์œ„ํ•œ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ1. ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ์˜ ์‘๋‹ต ํ”„๋ ˆ์ž„์ „์†กํ•œ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์˜ ์ผ๋ถ€๊ฐ€ ๊นจ์ง€๋Š” ํ”„๋ ˆ์ž„ ๋ณ€ํ˜• ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ ์ธก์—์„œ ํ™•์ธํ•˜๋ฉด, ์†ก์‹  ํ˜ธ์ŠคํŠธ์— ์‘๋‹ต ํ”„๋ ˆ์ž„์„ ์ „์†กํ•ด ์›๋ž˜์˜ ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์„ ์žฌ์ „์†กํ•˜๋„๋ก ์š”๊ตฌํ•œ๋‹ค.๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์ด ์ •์ƒ์ ์œผ๋กœ ๋„์ฐฉํ–ˆ์„ ๋•Œ๋Š” ๊ธ์ • ์‘๋‹ต ํ”„๋ ˆ์ž„์„ ํšŒ์‹ , ๋ฐ์ดํ„ฐ ํ”„๋ ˆ์ž„์ด ๊นจ์กŒ์„ ๋•Œ๋Š” ๋ถ€์ • ์‘๋‹ต ํ”„๋ ˆ์ž„์„ ํšŒ์‹ ํ•œ๋‹ค.์†ก์‹  ํ˜ธ์ŠคํŠธ์˜ ์žฌ์ „์†ก ๊ธฐ๋Šฅ์€ ์ˆ˜์‹  ํ˜ธ์ŠคํŠธ์˜ ๋ถ€์ • ์‘..

๋ฐ์ดํ„ฐ ์ „์†ก - ๋ฐ์ดํ„ฐ ์ „์†ก ๋ฐฉ์‹ (์ ๋Œ€์ , ๋ธŒ๋กœ๋“œ์บ์ŠคํŒ…, ๋ฉ€ํ‹ฐํฌ์ธํŠธ ํ†ต์‹ )

์ปดํ“จํ„ฐ ๋„คํŠธ์›Œํฌ์˜ ํšจ๊ณผ : ์ •๋ณด ๊ณต์œ , ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ์— ์˜ํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ, ์ค‘๋ณต ์ €์žฅ์— ๋”ฐ๋ฅธ ์‹ ๋ขฐ์„ฑ ํ–ฅ์ƒ ์ •๋ณด ๊ณต์œ (Information Sharing)์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด๋ฟ ์•„๋‹ˆ๋ผ ๊ฐ ํ˜ธ์ŠคํŠธ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋…ผ๋ฆฌ์ ์ธ ์ •๋ณด๋ฅผ ๊ณต์œ .์ธํ„ฐ๋„ท ์ž์›์„ ๋” ํšจ์œจ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€ ๋„คํŠธ์›Œํฌ๋ฅผ ๋ฐœ์ „์‹œํ‚จ 1์ฐจ ์š”์ธ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ์— ์˜ํ•œ ์„ฑ๋Šฅ ํ–ฅ์ƒ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ ๋‚ด๋ถ€์˜ ํ•˜๋‚˜์˜ ๊ณต์œ  ์‹œ์Šคํ…œ ๋ฒ„์Šค์— ๋‹ค์ˆ˜์˜ ๋ฉ”์ธ ํ”„๋กœ์„ธ์„œ๋ฅผ ์žฅ์ฐฉI/O ์žฅ์น˜์˜ ์ฒ˜๋ฆฌ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด I/O ์ „์šฉ ํ”„๋กœ์„ธ์„œ๋ฅผ ์„ค์น˜์‹œ์Šคํ…œ์ด ์ˆ˜ํ–‰ํ•  ์ž‘์—…์„ ๋ถ„ํ• ํ•ด ๋™์‹œ์— ์ฒ˜๋ฆฌํ•จ์œผ๋กœ์จ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์„ ๋‹จ์ถ• ์ค‘๋ณต ์ €์žฅ์— ๋”ฐ๋ฅธ ์‹ ๋ขฐ์„ฑ ํ–ฅ์ƒ์ค‘์š”ํ•œ ์ •๋ณด๋ฅผ ์—ฌ๋Ÿฌ ์‹œ์Šคํ…œ์— ์ค‘๋ณต ์ €์žฅํ•˜์—ฌ ์ •๋ณด์˜ ์ ‘๊ทผ์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ์„ ํ–ฅ์ƒ์ค‘๋ณต์— ๋”ฐ๋ฅธ ์ผ๊ด€์„ฑ ๋ฌธ์ œ๋Š” ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌ์‹ ๋ขฐ์„ฑ์˜ ํ–ฅ์ƒ ์ •๋„๋งŒํผ..

[Java] ๋‹ค์ต์ŠคํŠธ๋ผ, BFS | ๋ฐฑ์ค€ 2665 ๋ฏธ๋กœ๋งŒ๋“ค๊ธฐ

https://www.acmicpc.net/problem/2665  ์ ‘๊ทผ ๋ฐฉ๋ฒ•  ์ด ๋ฌธ์ œ๋Š” ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•˜์—ฌ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๊ฐ ๋ฐฉ์„ ๋…ธ๋“œ๋กœ ๋ณด๊ณ , ๊ฒ€์€ ๋ฐฉ์—์„œ ํฐ ๋ฐฉ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ์ž‘์—…์„ ๊ฐ€์ค‘์น˜๋กœ ๊ฐ„์ฃผํ•ด ์ตœ์†Œ ๋ณ€๊ฒฝ ํšŸ์ˆ˜ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•œ๋‹ค. ์ตœ๋‹จ ๊ฒฝ๋กœ๊ฐ€ ์•„๋‹Œ '์ตœ์†Œ ๋ณ€๊ฒฝ ํšŸ์ˆ˜'๋ฅผ ์ฐพ๋Š”๋‹ค๋Š” ์ ์ด ์ผ๋ฐ˜์ ์ธ ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ์˜ ์ฐจ์ด๋‹ค. ์‹œ์ž‘๋ถ€ํ„ฐ ๋๋ฐฉ๊นŒ์ง€ ๊ฐ€๋Š” ๋™์•ˆ ๊ฒ€์€ ๋ฐฉ(0)์„ ์ตœ์†Œ๋กœ ์ง€๋‚˜์•ผ ํ•œ๋‹ค.์ฆ‰ ํฐ ๋ฐฉ(1)์„ ์ง€๋‚˜๊ฐˆ ๋•Œ๋Š” ๋น„์šฉ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  ๊ฒ€์€ ๋ฐฉ(0)์„ ๊ฑฐ์น  ๋•Œ๋Š” ๋น„์šฉ์ด 1 ๋งŒํผ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ๊ฐ„์ฃผํ•˜๊ณ , ์‹œ์ž‘๋ถ€ํ„ฐ ๋๋ฐฉ๊นŒ์ง€ BFS๋ฅผ ์ง„ํ–‰ํ•˜์—ฌ ์ตœ์†Œ ๋น„์šฉ์œผ๋กœ ๋๋ฐฉ์— ๋„์ฐฉํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ตฌํ•˜๋ฉด ๋œ๋‹ค. ์šฐ์„ ์ˆœ์œ„ ํ(PriorityQueue)๋ฅผ ์‚ฌ์šฉํ•ด ํ˜„์žฌ ๋ณ€๊ฒฝ ํšŸ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ์ ์€ ๊ฒฝ๋กœ๋ถ€ํ„ฐ ํƒ์ƒ‰ํ•œ๋‹ค..

๊ทธ๋ž˜ํ”„์˜ ํ‘œํ˜„๊ณผ ์ •์˜

ํŠธ๋ฆฌ : ์„ ํ˜•์œผ๋กœ ํ‘œํ˜„ํ•˜๊ธฐ ํž˜๋“  ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์•ˆ ๊ทธ๋ž˜ํ”„๋Š” ๊ณ„์ธต์ ์ธ ๊ตฌ์กฐ๋ณด๋‹ค ์ข€๋” ์ผ๋ฐ˜์ ์ด๊ณ  ๊ฐ•๋ ฅํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค.ํ˜„์‹ค ์„ธ๊ณ„์˜ ์‚ฌ๋ฌผ์ด๋‚˜ ์ถ”์ƒ์ ์ธ ๊ฐœ๋… ๊ฐ„์˜ ์—ฐ๊ฒฐ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ex) ์—ฌ๋ ค ๋„์‹œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋„๋กœ๋ง, ์‚ฌ๋žŒ๋“ค ๊ฐ„์˜ ์ง€์ธ ๊ด€๊ณ„, ์›น์‚ฌ์ดํŠธ ๊ฐ„์˜ ๋งํฌ ๊ด€๊ณ„ ๋“ฑ์˜ ์—ฐ๊ฒฐ ๊ตฌ์กฐ ํŠธ๋ฆฌ์™€์˜ ์ฐจ์ด => ํŠธ๋ฆฌ๋Š” ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„์— ๋Œ€ํ•œ ์ œ์•ฝ์ด ์กด์žฌํ•˜๋‚˜ ๊ทธ๋ž˜ํ”„๋Š” ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„์™€ ๊ฐ™์€ ์ œ์•ฝ์ด ์—†์Œ ๊ทธ๋ž˜ํ”„์˜ ์ •์˜์–ด๋–ค ์ž๋ฃŒ๋‚˜ ๊ฐœ๋…์„ ํ‘œํ˜„ํ•˜๋Š” ์ •์ (vertex)๋“ค์˜ ์ง‘ํ•ฉ V์™€ ์ด๋“ค์„ ์—ฐ๊ฒฐํ•˜๋Š” ๊ฐ„์„ (edge)๋“ค์˜ ์ง‘ํ•ฉ E๋กœ ๊ตฌ์„ฑ๋œ ์ž๋ฃŒ ๊ตฌ์กฐ์ •์ ๊ณผ ๊ฐ„์„ ์œผ๋กœ ์ •์˜๋˜๋ฉฐ ์ •์ ์˜ ์œ„์น˜, ๊ฐ„์„ ์˜ ์ˆœ์„œ ๋“ฑ์€ ๊ทธ๋ž˜ํ”„์— ์ •์˜์— ํฌํ•จ๋˜์ง€ ์•Š์Œ.  ๊ทธ๋ž˜ํ”„์˜ ์ข…๋ฅ˜ํ‘œํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ๋Œ€์ƒ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ณ€ํ˜•๋œ ํ˜•ํƒœ๊ฐ€ ์กด์žฌ ๊ฐ„์„ ์ด ๊ฐ€์ง„ ..

[Java] ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ •๋ ฌ | ๋ฐฑ์ค€ 1461 ๋„์„œ๊ด€

https://www.acmicpc.net/problem/1461 ๋‚ด ์ ‘๊ทผ ๋ฐฉ์‹์˜ˆ์ œ ์ž…๋ ฅ 3๊ฐœ๋ฅผ ์ง์ ‘ ์†์œผ๋กœ ํ’€์–ด๋ณด์•˜๊ณ  ์˜ˆ์ œ ์ถœ๋ ฅ์— ๋Œ€ํ•œ ๋‹ต์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ์–ด ์ด๋ฅผ ์ฝ”๋“œ๋กœ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.์† ํ’€์ด ์ ‘๊ทผ1. 0์˜ ์œ„์น˜์— ์ฑ…์ด ๋ชจ์•„์ ธ ์žˆ์œผ๋ฏ€๋กœ 0์„ ๊ธฐ์ค€์œผ๋กœ ์Œ์ˆ˜ ์ชฝ์— ๋†“์•„์•ผ ๋  ์ฑ…๋“ค๊ณผ ์–‘์ˆ˜ ์ชฝ์— ๋†“์•„์•ผ ๋  ์ฑ…๋“ค๋กœ ๋ถ„๋ฅ˜๋จ.2. ์ด๋ฅผ ์œ„ํ•ด ์šฐ์„  ์ฃผ์–ด์ง„ ์ฑ…์˜ ์œ„์น˜๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ.=> ์ด ๋ถ€๋ถ„์—์„œ ์–ด๋–ป๊ฒŒ ์ฑ…์„ ์˜ฎ๊ธฐ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ–ˆ๋Š”๋ฐ,๊ทธ๋ƒฅ M์”ฉ๋“ค์–ด์„œ ๋†“๊ณ  0์œผ๋กœ ๋Œ์•„๊ฐ€๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ตœ์†Œ๊ฐ€ ์•„๋‹˜์„ ํ™•์ธํ–ˆ๋‹ค.  ๋” ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•˜๋‹ค 0์— ์žˆ๋Š” ์ฑ…์„ M๊ฐœ๋ฅผ ๋“ค์–ด ๋ฐ”๋กœ ์˜† ์œ„์น˜๋กœ ๋ชจ๋‘ ์ด๋™์‹œํ‚ค๊ณ , ํ•ด๋‹น ์œ„์น˜์— ๋†“์ผ ์ฑ…์„ ์ œ์™ธํ•˜๊ณ  ๋‹ค์‹œ M๊ฐœ์”ฉ ๋“ค์–ด ๋ชจ๋‘ ๊ทธ ๋‹ค์Œ ์œ„์น˜๋กœ ์ด๋™์‹œํ‚ค๋Š” ๋ฐฉ์‹์„ ์ƒ๊ฐํ–ˆ..

[Java] ํˆฌํฌ์ธํ„ฐ | ๋ฐฑ์ค€ 1253 ์ข‹๋‹ค

https://www.acmicpc.net/problem/1253 ์ ‘๊ทผ ๋ฐฉ๋ฒ•ํˆฌํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ์ˆ˜์˜ ํ•ฉ์„ ๊ตฌํ•˜๊ณ  ๊ทธ ํ•ฉ์ด ํƒ€๊ฒŸ๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€๋ฅผ ํ™•์ธ์ด๋ฅผ ์œ„ํ•ด ๋ฐฐ์—ด์˜ ์ •๋ ฌ์ด ์„ ํ–‰๋˜์–ด์•ผ ํ•จArrays.sort(arr);int count = 0;for(int i=0; i ๋ฐฐ์—ด ์ •๋ ฌ ์ดํ›„ ํ•ด๋‹น ํƒ€๊ฒŸ ๋„˜๋ฒ„๊ฐ€ ๋ฐฐ์—ด ๋‚ด์˜ ๋‘์ˆ˜์˜ ํ•ฉ์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ˆ˜(์ข‹์€ ์ˆ˜)์ธ์ง€ ํ™•์ธํ•˜๋Š” isGoodNumber(int target, int target_idx) ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ์ข‹์€ ์ˆ˜์ผ ๊ฒฝ์šฐ(true) count++ํ•˜์—ฌ ์ข‹์€ ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค. isGoodNumber ๋ฉ”์„œ๋“œ ๊ตฌํ˜„๋‹จ์ˆœํžˆ ๋ฐฐ์—ด ๋‚ด์˜ ๋‘ ์ˆ˜๊ฐ€ ๋ฐฐ์—ด ๋‚ด์˜ ํƒ€๊ฒŸ ๊ฐ’๊ณผ ์ผ์น˜ํ•˜๋Š” ์ง€๋งŒ ํ™•์ธํ•œ๋‹ค๋ฉด, ๋‘์ˆ˜์˜ ํ•ฉ์ด ํƒ€๊ฒŸ ๊ฐ’๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ return true, ํƒ€๊ฒŸ ๊ฐ’ ๋ณด๋‹ค ..

[Java] ํŠธ๋ฆฌ, ๊ตฌํ˜„ | ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋‹ค๋‹จ๊ณ„ ์นซ์†” ํŒ๋งค

https://school.programmers.co.kr/learn/courses/30/lessons/77486 ๋ฌธ์ œ ๊ฐœ์š”๋‹ค๋‹จ๊ณ„ ํŒ๋งค ์กฐ์ง์—์„œ ๊ฐ ํŒ๋งค์›์˜ ์ด์ต์„ ๊ณ„์‚ฐํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์˜€๋‹ค.์ฃผ์š” ๊ทœ์น™์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.ํŒ๋งค์›์ด ๋ฐœ์ƒ์‹œํ‚จ ์ด์ต์˜ 10%๋ฅผ ์ถ”์ฒœ์ธ์—๊ฒŒ ๋ถ„๋ฐฐ(1์› ๋ฏธ๋งŒ์€ ๋ถ„๋ฐฐํ•˜์ง€ ์•Š์Œ)๋‚˜๋จธ์ง€๋Š” ์ž์‹ ์ด ๊ฐ€์ง์ด ๊ณผ์ •์ด ์žฌ๊ท€์ ์œผ๋กœ ์ƒ์œ„ ์ถ”์ฒœ์ธ์—๊ฒŒ๋„ ์ ์šฉ๋จ์ฒ˜์Œ ์‹œ๋„ํ•œ ๋ฐฉ๋ฒ•class Node { String name; Node parent; int income; }์ฒ˜์Œ์—๋Š” ํŠธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด Node ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋ฌธ์ œํ•ด๊ฒฐ์„ ์‹œ๋„ํ•ด๋ณด์•˜๋‹ค.๊ฐ ํŒ๋งค์›์„ ๋…ธ๋“œ๋กœ ์ƒ์„ฑํ•˜๊ณ  ํฌ์ธํ„ฐ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์ƒ๊ฐํ–ˆ์ง€๋งŒํŒ๋งค์› ๊ฒ€์ƒ‰๊ณผ ์ˆ˜์ต ๊ฐฑ์‹  ๊ณผ์ •์— ์žˆ์–ด์„œ ์„ฑ๋Šฅ์ด ์ข‹์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„..

[Java] ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ BFS| ๋ฐฑ์ค€ 1240 ๋…ธ๋“œ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ

https://www.acmicpc.net/problem/1240  ์ด ๋ฌธ์ œ๋Š” ํŠธ๋ฆฌ์—์„œ ๋‘ ๋…ธ๋“œ ๊ฐ„์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ๋กœ, BFS(๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰)๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.  ์ ‘๊ทผ ๋ฐฉ์‹์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋ฆฌ๋ฅผ ํ‘œํ˜„์–‘๋ฐฉํ–ฅ ๊ฐ„์„ ์œผ๋กœ ์ฒ˜๋ฆฌ (ํŠธ๋ฆฌ๋Š” ์–‘์ชฝ์œผ๋กœ ์ด๋™ ๊ฐ€๋Šฅ)Edge ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•˜์—ฌ ๋ชฉ์ ์ง€ ๋…ธ๋“œ์™€ ๊ฐ€์ค‘์น˜ ์ •๋ณด๋ฅผ ํ•จ๊ป˜ ์ €์žฅstatic class Edge { int to; int weight; public Edge(int to, int weight) { this.to = to; this.weight = weight; }} BFS๋ฅผ ์ด์šฉํ•œ ๊ฑฐ๋ฆฌ ๊ณ„์‚ฐ ์‹œ์ž‘ ๋…ธ๋“œ๋ถ€ํ„ฐ BFS๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ๊ฐ ๋…ธ๋“œ๊นŒ์ง€์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ„์‚ฐdistance ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋…ธ๋“œ..

์ž๋ฐ”์˜ ๋ฐฐ์—ด ์ดˆ๊ธฐํ™” ์ดํ•ดํ•˜๊ธฐ: ๊ธฐ๋ณธํ˜•(Primitive Type)๊ณผ ์ฐธ์กฐํ˜•(Reference Type)์˜ ์ฐจ์ด

์ž๋ฐ”์—์„œ ๋ฐฐ์—ด์„ ๋‹ค๋ฃฐ ๋•Œ ๊ธฐ๋ณธํ˜•(Primitive Type)๊ณผ ์ฐธ์กฐํ˜•(Reference Type)์˜ ์ดˆ๊ธฐํ™” ๋ฐฉ์‹์—๋Š” ์ค‘์š”ํ•œ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ ์ด ์ฐจ์ด์ ์„ ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ณ , ์‹ค์ œ ์ฝ”๋“œ์—์„œ ์–ด๋–ป๊ฒŒ ์ ์šฉ๋˜๋Š”์ง€ ์‚ดํŽด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.1. ๋ฐฐ์—ด์˜ ๊ธฐ๋ณธ ์ดˆ๊ธฐํ™”1.1 ๊ธฐ๋ณธํ˜• ๋ฐฐ์—ด(Primitive Type)๊ธฐ๋ณธํ˜• ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๋ฉด ๊ฐ ์š”์†Œ๋Š” ํ•ด๋‹น ํƒ€์ž…์˜ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ž๋™ ์ดˆ๊ธฐํ™”๋œ๋‹ค.int[] arr = new int[5];System.out.println(arr[0]); // ์ถœ๋ ฅ: 0arr[0] = 10; // ๋ฐ”๋กœ ๊ฐ’ ๋Œ€์ž… ๊ฐ€๋Šฅ ๊ฐ ๊ธฐ๋ณธํ˜• ํƒ€์ž…๋ณ„ ์ดˆ๊ธฐ๊ฐ’byte -> 0short -> 0int -> 0long -> 0Lfloat -> 0.0fdouble -> 0.0dbool..

Java 2024. 11. 3. 18:30
[Java] ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ, DFS | ๋ฐฑ์ค€ 2458 ํ‚ค ์ˆœ์„œ

https://www.acmicpc.net/problem/2458 ์ ‘๊ทผ ๋ฐฉ๋ฒ• ์ฒซ์ ‘๊ทผ(์‹คํŒจ)๋ฌธ์ œ ์œ ํ˜•์„ ๋ณด์ง€ ์•Š๊ณ  ํ’€์–ด๋ณด์•˜์„ ๋•Œ ์ผ์ฐจ์› ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ ๊ด€๊ณ„๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, a > b์ธ ๊ฒฝ์šฐ, ๋ฐฐ์—ด์—์„œ b๋ณด๋‹ค ํฐ ํ•™์ƒ ์ˆ˜๋ฅผ a์˜ ์œ„์น˜์— ๋ˆ„์ ํ•˜์—ฌ ๊ธฐ๋ก๋งŒ์•ฝ ์ด๋ฏธ ๋ˆ„์ ๋œ ๊ฐ’์ด ํฌ๋‹ค๋ฉด ํ•ด๋‹น ๊ด€๊ณ„๋Š” ๋ฌด์‹œํ•จ๋ฐฐ์—ด์˜ ์ตœ์ข… ๊ฐ’์ด ์œ ์ผ(unique)ํ•˜๋‹ค๋ฉด, ํ•ด๋‹น ํ•™์ƒ์˜ ์ˆœ์œ„๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.ํ•˜์ง€๋งŒ ์ด ๋ฐฉ๋ฒ•์€ ๊ฐ„์ ‘ ๊ด€๊ณ„ ํ™•์ธ ๋ถˆ๊ฐ€ ๋“ฑ์˜ ์ด์œ ๋กœ ์‹ค์ œ ์ˆœ์œ„๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์•˜๋‹ค. ์ฒซ๋ฒˆ์งธ ๋ฐฉ๋ฒ•(ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ) ๋ฌธ์ œ ์œ ํ˜•์ด ํ”Œ๋กœ์ด๋“œ-์›Œ์…œ์ธ ๊ฒƒ์„ ํ™•์ธํ•œ ๋’ค ํ’€์–ด๋ณด์•˜๋‹ค.์ฒ˜์Œ์—” int[] ๋ฐฐ์—ด๋กœ ํ’€์ดํ–ˆ๋‹ค๊ฐ€ ์ž์‹ ๋ณด๋‹ค ํฐ ์‚ฌ๋žŒ์„ true๋กœ ์ฒดํฌํ•˜๋Š” boolean[] ๋ฐฐ์—ด๋กœ ๋ฐ”๊พธ์–ด์„œ ์ฝ”๋“œ๋ฅผ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.int N = Integ..