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

backtracking2

[BOJ] 2529๋ฒˆ - ๋ถ€๋“ฑํ˜ธ (Java) ๐Ÿ› ๏ธ ๋ฌธ์ œ ๐Ÿ› ๏ธ ๐Ÿ—’๏ธ ์„ค๋ช… ๐Ÿ—’๏ธ ๋ถ€๋“ฑํ˜ธ ๊ธฐํ˜ธ ์•ž๋’ค์— ์„œ๋กœ ๋‹ค๋ฅธ ํ•œ ์ž๋ฆฟ์ˆ˜ ์ˆซ์ž๋ฅผ ๋„ฃ์–ด์„œ ๋ชจ๋“  ๋ถ€๋“ฑํ˜ธ ๊ด€๊ณ„๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์ˆ˜์—ด์„ ๊ตฌํ•ด์•ผํ•œ๋‹ค. → ์ด ์ˆ˜์—ด์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฑํŠธ๋ž˜ํ‚น ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐ ๋ถ€๋“ฑํ˜ธ์˜ ์•ž๋’ค์— ๋“ค์–ด๊ฐ€๋Š” ์ˆซ์ž๋Š” { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }์ค‘์—์„œ ์„ ํƒํ•ด์•ผ ํ•˜๋ฉฐ ์„ ํƒ๋œ ์ˆซ์ž๋Š” ๋ชจ๋‘ ๋‹ฌ๋ผ์•ผ ํ•œ๋‹ค. → ๋ฐฑํŠธ๋ž˜ํ‚น์„ ํ•  ๋•Œ ์‚ฌ์šฉํ•  ๋ฐฐ์—ด์€ ์œ„์™€ ๊ฐ™๊ณ  ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๊ฐ’๋“ค๋กœ ์ด๋ค„์ง€๋„๋ก visited ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด์ œ ์—ฌ๊ธฐ์„œ ๋ชจ๋“  ๋ถ€๋“ฑํ˜ธ ๊ด€๊ณ„๋ฅผ ๋งŒ์กฑํ•˜๋Š” ์ˆ˜์—ด ์ค‘ ๊ฐ€์žฅ ํฐ ๊ฐ’๊ณผ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ๊ตฌํ•ด์•ผํ•œ๋‹ค. ์ด๋•Œ ์ฃผ์˜ํ•  ์ ์€ ์ฒซ ์ž๋ฆฌ๊ฐ€ 0์ธ ๊ฒฝ์šฐ๋„ ์ •์ˆ˜์— ํฌํ•จํ•ด์•ผํ•œ๋‹ค. ์ฆ‰, 0123๊ณผ ๊ฐ™์ด ์ถœ๋ ฅํ•ด์•ผํ•œ๋‹ค. ๋‚˜๋Š” ์ด๋ฅผ ์‰ฝ๊ฒŒ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ๋ฌธ์ž์—ด๋กœ ๋‹ต์„ ๊ตฌํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ตœ์†Ÿ๊ฐ’.. 2024. 3. 11.
[Softeer] Lv3. ํƒ๋ฐฐ๋งˆ์Šคํ„ฐ ๊ด‘์šฐ (Java) 1. ๋ฌธ์ œ ๋ฌธ์ œ ๋งํฌ : Lv3. ํƒ๋ฐฐ๋งˆ์Šคํ„ฐ ๊ด‘์šฐ ์ฃผ์ œ : ์™„์ „ํƒ์ƒ‰, ๋ฐฑํŠธ๋ž˜ํ‚น 2. ํ’€์ด ๊ณผ์ • ๋ฐ ์ •๋ฆฌ ์ด ๋ฌธ์ œ์—์„œ๋Š” ๋ ˆ์ผ์„ ์–ด๋–ค ์ˆœ์„œ๋กœ ๋Œ์•„์„œ ์ตœ์†Œํ•œ์˜ ๋ฌด๊ฒŒ๋กœ ์ผํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ฐพ์•„์•ผํ•œ๋‹ค. ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋ ˆ์ผ์„ ๋Œ๋ฉด์„œ ๋ฐ”๊ตฌ๋‹ˆ ๋ฌด๊ฒŒ๋ฅผ ์ดˆ๊ณผํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๋ฌด์กฐ๊ฑด 1๋ฒˆ์œผ๋กœ ์‹œํ–‰๋˜์–ด์•ผ ํ•œ๋‹ค. ์ด๋Š” ๋”ฑํžˆ ๊ทœ์น™์„ฑ์ด๋‚˜ ๊ณต์‹์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ์„ ํƒํ•œ ๋ฐฉ์‹์€ ์™„์ „ํƒ์ƒ‰์„ ํ•˜์—ฌ ๋ ˆ์ผ์˜ ์ˆœ์„œ๋ฅผ ๋ชจ๋‘ ๊ตฌํ–ˆ๋‹ค. ์ด๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐฑํŠธ๋ž˜ํ‚น ๋ฐฉ์‹์œผ๋กœ ์ˆœ์„œ๋ฅผ ๊ตฌํ–ˆ๋‹ค. static void dfs(int count, int[] result) { if(count == n) { //์ˆœ์„œ๊ฐ€ ์ •ํ•ด์กŒ์„ ๊ฒฝ์šฐ int w = getWeight(result); minWeight = Math.min(w, minWeight).. 2024. 2. 25.
728x90