2020/10 7

Graph | DFS(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰), BFS(๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰)

ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ด๋ฒˆ ์ฃผ๋Š” ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋Œ€ํ‘œ์ ์ธ ๋‘ ๊ฐ€์ง€ DFS์™€ BFS์— ๊ณต๋ถ€ํ•  ์˜ˆ์ •์ด๋‹ค. ๋จผ์ € ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ํŠธ๋ฆฌ ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค์–ด์ง„ ๊ทธ๋ž˜ํ”„์˜ ๋…ธ๋“œ ๊ทธ๋ฆฌ๊ณ  ๋…ธ๋“œ์™€ ๋…ธ๋“œ ์‚ฌ์ด์— ์—ฐ๊ฒฐ๋œ ๊ฐ„์„ ์˜ ์ƒํƒœ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ๋จผ์ €, ๊ทธ๋ž˜ํ”„๋ฅผ ๋ฐ์ดํ„ฐ๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋จผ์ € ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์žˆ์–ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ์ธ์ ‘ ํ–‰๋ ฌ ๋˜๋Š” ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. Graph [์ž๋ฃŒ๊ตฌ์กฐ] ๊ทธ๋ž˜ํ”„(Graph)๋ž€ - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io ์ธ์ ‘ ํ–‰๋ ฌ ์ธ์ ‘ ํ–‰๋ ฌ์ด๋ž€ ๊ทธ๋ž˜ํ”„์˜ ์—ฐ๊ฒฐ ๊ด€๊ณ„๋ฅผ 2์ฐจ์› ๋ฐฐ์—ด๋กœ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค. ์ฆ‰, ๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜๋Š” ์ด๋ฏธ ์ •ํ•ด์ ธ ์žˆ์œผ๋‹ˆ ๊ฐ ๋…ธ๋“œ(x์ถ• index ๋ฒˆํ˜ธ)์™€..

Algorithm 2020.10.31

๋ฐฑ์ค€ 11729 | ์žฌ๊ท€ ํ•จ์ˆ˜, ํ•˜๋…ธ์ด์˜ ํƒ‘ ์ด๋™ ์ˆœ์„œ

์žฌ๊ท€ ํ•จ์ˆ˜ ์žฌ๊ท€๋ž€ ์ž์‹ ์„ ์ •์˜ํ•  ๋•Œ ์ž๊ธฐ ์ž์‹ ์„ ์žฌ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋œปํ•œ๋‹ค. ์ฆ‰, ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๊ทธ ์•ˆ์— ์–ด๋–ค ํ•จ์ˆ˜๋ฅผ ๋˜ ํ˜ธ์ถœํ•˜์—ฌ ๋ฐ˜๋ณตํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค. ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๋ ค๋ฉด ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ ๊ฑฐ์šธ์„ ์ƒ๊ฐํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค! (๋‚ด๊ฐ€ ์ด๊ฑธ๋กœ ์ดํ•ดํ–ˆ๋‹ค.๐Ÿฅถ) ์ฒ˜์Œ์—๋Š” ๊ต‰์žฅํžˆ ์ƒ์†Œํ•œ ์ด๋ฆ„์ด์—ˆ์ง€๋งŒ Node.js๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ฝœ๋ฐฑ ์ง€์˜ฅ ์ด๋ผ๋Š” ๋‚ด์šฉ์„ ์ ‘ํ–ˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ์ฝœ๋ฐฑ ์ด ์žฌ๊ท€ ํ•จ์ˆ˜์˜ ๊ฐœ๋…์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ํ•œ๋‹ค.(๋งž์„๊ฑฐ๋‹ค..ใ…Ž) ์‚ฌ์ด๋ฒ„๋‹ค์ž„ ๋ฉด์ ‘์„ ์ค€๋น„ํ•˜๋ฉด์„œ ์žฌ๊ท€ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ๋ฌธ์ œ๊ฐ€ ๋‚˜์˜จ๋‹ค๋Š” ์ด์•ผ๊ธฐ๋ฅผ ๋“ค์—ˆ๊ณ , ์ด๋ฅผ ๊ณต๋ถ€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•˜๋…ธ์ด์˜ ํƒ‘ ๋ฌธ์ œ๋ฅผ ํ’€์–ด ๋ดค๋Š”๋ฐ ์†์œผ๋กœ ์ง์ ‘ ๊ทธ๋ ค ๋ณด๊ธฐ ์ „๊นŒ์ง€๋Š” ์ „ํ˜€ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ๊ทผ๋ฐ ํ•œ๋ฒˆ ์†์œผ๋กœ ๊ทธ๋ ค ๋ณด๋‹ˆ๊นŒ ์™„๋ฒฝํ•˜์ง€ ์•Š์ง€๋งŒ ๋Œ€๋žต์ ์œผ๋กœ ์žฌ๊ท€์— ๋Œ€ํ•œ ํ‹€์ด ์žกํžŒ ๊ฒƒ ๊ฐ™๋‹ค. (์ •์ž‘ ์‚ฌ์ด๋ฒ„๋‹ค์ž„..

Algorithm 2020.10.18

๋ฐฑ์ค€ 5585 | ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๊ฑฐ์Šค๋ฆ„ ๋ˆ

๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ตœ์ ํ•ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐ์— ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ํšจ์œจ์„ ์˜ฌ๋ฆฐ๋‹ค๊ณ  ์•Œ๋ ค์ ธ์žˆ๋‹ค. ๋˜ํ•œ, ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์—ฌ๋Ÿฌ ๊ฒฝ์šฐ ์ค‘ ํ•˜๋‚˜๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•  ๋•Œ ๊ทธ ์ˆœ๊ฐ„์˜ ์ตœ์ ์˜ ์„ ํƒ์„ ์ปดํ“จํ„ฐ์—๊ฒŒ ํ•˜๋„๋ก ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋Š”๋ฐ, ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ตœ์ ํ•ด๋ฅผ ๋ณด์žฅ ํ•ด์ฃผ์ง€ ์•Š์ง€๋งŒ ๊ฒฐ๊ณผ๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š” ์‹œ๊ฐ„์ด ๊ต‰์žฅํžˆ ๋‹จ์ถ•๋œ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. ์œ„์˜ ํŠธ๋ฆฌ ๊ตฌ์กฐ์—์„œ ๊ฐ€์žฅ ์ตœ์ ์˜ ํ•ด๋Š” 7 → 100 → 107์˜ ๊ฒฝ๋กœ๊ฐ€ ๊ฐ€์žฅ ์ตœ์ ์˜ ํ•ด๋กœ ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ 7 ๋ณด๋‹ค ํฐ 13์„, 5 ๋ณด๋‹ค ํฐ 11์„ ์„ ํƒํ•œ๋‹ค. ์ฆ‰, ํ˜„์žฌ ์œ„์น˜์—์„œ ๊ฐ€์žฅ ์ตœ์„ ์˜ ์„ ํƒ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ ํ•ด๋ฅผ ๋ณด์žฅ ํ•ด์ฃผ์ง€ ์•Š๋Š” ๋‹ค๋Š” ๋œป์ด๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์˜ˆ์‹œ๋Š” ๊ฑฐ์Šฌ๋Ÿฌ ์ค˜์•ผ ํ•  ์ตœ์†Œํ•œ์˜ ๋™์ „ ๊ฐœ์ˆ˜๊ฐ€ ๋ช‡..

Algorithm 2020.10.18

๋ฐฑ์ค€ 7568 | ๋ธŒ๋ฃจํŠธ ํฌ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๋ฉ์น˜

์™„์ „ ํƒ์ƒ‰ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋ฅผ ๋ณผ ๋•Œ ๊ฐ€์žฅ ๊ธฐ์ดˆ์ ์ธ ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์žฅ ์ถœ์ œ ๋นˆ๋„๊ฐ€ ๋†’์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ทธ๋ฆฌ๋””์™€ ์™„์ „ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ์ฃผ์ฐจ ๋ฌธ์ œ๋„ ๊ทธ๋ฆฌ๋””, ์™„์ „ ํƒ์ƒ‰ ๊ทธ๋ฆฌ๊ณ  ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ๋ฌธ์ œ๋ฅผ ๊ณต์ง€ํ–ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋„๋Œ€์ฒด ์™„์ „ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ญ˜๊นŒ? ์™„์ „ํƒ์ƒ‰ '๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ „๋ถ€ ์ฐพ์•„์„œ ๋‹ต์„ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์„ ๋œปํ•œ๋‹ค. ์˜์–ด๋กœ๋Š” Exhaustive Search ๋ผ๊ณ  ํ•œ๋‹ค. ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋‹ค ํ•ด๋ณด๋Š” ๊ฒƒ์ด๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ’€๋•Œ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•˜๊ณ  ํ™•์‹คํ•œ ๋ฐฉ๋ฒ•์ด์ง€๏ฟฝ velog.io (์œ„ ๋ธ”๋กœ๊ทธ์—์„œ ์•„์ฃผ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋‹ค.) ์œ„ ๊ธ€์—์„œ ์™„์ „ ํƒ์ƒ‰ ๊ธฐ๋ฒ•์˜ ์ข…๋ฅ˜๋กœ Brute Force : for๋ฌธ๊ณผ if๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋น„ํŠธ ๋งˆ์Šคํฌ : ์ด์ง„์ˆ˜ ํ‘œํ˜„์„ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ ์“ฐ..

Algorithm 2020.10.18

๋ฐฑ์ค€ 1874 | ์Šคํƒ ์ˆ˜์—ด

์ง„์งœ ๋ชจ๋ฅด๊ฒ ๋‹ค. ๋„ˆ๋ฌด ์–ด๋ ต๋‹ค. ์–ด๋–ป๊ฒŒ๋“  ํ’€์–ด ๋ณด๊ฒ ๋‹ค๊ณ  ์•ˆ๊ฐ„ํž˜์„ ์“ด ํ”์ . ๋ง์•„๋จน์„ ๋‚ด ์ฝ”๋“œ package ์‹ฌ์„ฑํ—Œ.์•Œ๊ณ ๋ฆฌ์ฆ˜_2์ฃผ์ฐจ; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class ์Šคํƒ์ˆ˜์—ด_1874 { static public BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static public int[] input(int n) throws NumberFormatException, IOExc..

Algorithm 2020.10.16

๋ฐฑ์ค€ 10818 | ์ตœ์†Œ, ์ตœ๋Œ“๊ฐ’ ๊ตฌํ•˜๊ธฐ

์ตœ์†Œ, ์ตœ๋Œ“๊ฐ’ ๊ตฌํ•˜๊ธฐ ๋ฉด์ ‘ ์ค€๋น„๋ฅผ ํ•˜๋ฉด์„œ ์„ ํƒ ์ •๋ ฌ๊ณผ ๋ฒ„๋ธ” ์ •๋ ฌ์ด ๋ฌธ์ œ๋กœ ๋‚˜์˜จ๋‹ค๊ณ  ๋“ค์–ด์„œ ์„ ํƒ ์ •๋ ฌ์— ๋Œ€ํ•ด์„œ ๋จผ์ € ๊ณต๋ถ€๋ฅผ ํ–ˆ๋‹ค. ์˜ˆ์ „์— ํ’€์—ˆ๋˜ ๋ฌธ์ œ์ง€๋งŒ ๋‹ค์‹œ ๋“ค์—ฌ๋‹ค๋ณด์ง€ ์•Š์•„์„œ ๋‹ค ๊นŒ๋จน์—ˆ๋‹ค. ์–ด์จŒ๋“ , ๋‚˜๋Š” ์ด๋ฒˆ ๋ฌธ์ œ๋ฅผ ์„ ํƒ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. ๊ทผ๋ฐ ๊ฒฐ๊ณผ๋Š” ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ์˜€๋‹ค. ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ ์ฝ”๋“œ import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); int[] list = ..

Algorithm 2020.10.16

Javascript ์ดํ•ดํ•˜๊ธฐ - Prototype / Class

์•Œ์•„๋‘๋ฉด ์ข‹์€ Javascript ํŒŒ์ด๋„ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค์€ ๋Œ€๋ถ€๋ถ„ Ajax ๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ํ•ด์•ผ ํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ž์—ฐ์Šค๋ ˆ Javascript๋ฅผ ์ ‘ํ•  ๊ธฐํšŒ๊ฐ€ ๋งŽ์•˜๋Š”๋ฐ, ์ด๋ฒˆ์— Node.js ๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ ๋Š๊ผˆ๋‹ค. ํ”„๋กœ์ ํŠธ์—์„œ ๋งŒ๋‚œ Javascript๋Š” ์šฐ์ฃผ ๋จผ์ง€๋ณด๋‹ค ์ž‘์€ ์กด์žฌ๋ผ๋Š” ๊ฒƒ์„.. Prototype ํ†บ์•„๋ณด๊ธฐ Prototype ์€ Class ์— ๋Œ€ํ•œ ๋ฌธ๋ฒ•์„ ๊ณต๋ถ€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ํ•„์ˆ˜์ ์œผ๋กœ ์•Œ์•„์•ผ ํ•˜๋Š” ๊ฐœ๋…์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ๋‚˜๋Š” ํด๋ž˜์Šค ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” Java ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•ด์„œ Javascript์˜ Class ๋ฌธ๋ฒ•๋„ ๊ธˆ๋ฐฉ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„ ์ค„ ์•Œ์•˜๋Š”๋ฐ ์ „ํ˜€ ์•„๋‹ˆ์—ˆ๋‹ค. Javascript๋Š” ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ์–ธ์–ด๋กœ์จ, Class ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด๋Š” ๋ณด๊ธฐ..

Programming/Node.js 2020.10.05