Banner

My Tech Blog (Algorithm)

๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹๋งŒ๋“ค์–ด์ค„ ๋ฉ”์„œ๋“œ๋Š” 4๊ฐ€์ง€ - ์˜คํ”„๋‹ ๋ ์œ„์น˜๋กœ ์ด๋™ํ•˜๋Š” `SkipOp()` ๋ฉ”์„œ๋“œ- ๋ช…๋ น์ด "next" ์ด๋ฉด 10์ดˆ ๋’ค๋กœ ์ด๋™ํ•˜๋Š” `moveToNext()`๋ฉ”์„œ๋“œ- ๋ช…๋ น์ด "prev" ์ด๋ฉด  10์ดˆ ์•ž์œผ๋กœ ์ด๋™ํ•˜๋Š” `moveToPrev()` ๋ฉ”์„œ๋“œ- String ํƒ€์ž…์œผ๋กœ ์ž…๋ ฅ ๋ฐ›์€ ์‹œ๊ฐ„์„ LocalTime์œผ๋กœ ํ˜•๋ณ€ํ™˜ ํ•˜๋Š” `getTime()`๋ฉ”์„œ๋“œ "mm:ss" ํ˜•์‹์œผ๋กœ ๋ฐ›์•„์˜จ ์‹œ๊ฐ„์„ ":" ๊ธฐ์ค€์œผ๋กœ ๋ถ„, ์ดˆ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค.LocalTime์ด ๊ฐ€์ง„ ๋ฉ”์„œ๋“œ๋กœ ์‹œ๊ฐ„ ๊ณ„์‚ฐ์„ ํ•˜๊ณ , ๋ฐ˜ํ™˜ํ•  ๋•Œ๋Š” ๋‹ค์‹œ "mm:ss" ํ˜•์‹์œผ๋กœ ํฌ๋งคํŒ… ํ•ด์„œ ๋ฐ˜ํ™˜ํ•ด ์ฃผ์–ด์•ผ ํ•จ.ํ˜„์žฌ ์‹œ๊ฐ„์ด ์˜คํ”„๋‹ ์œ„์น˜ ์•ˆ์— ์žˆ์„ ๋•Œ๋Š” ์ž๋™์œผ๋กœ SkipOp() ๋ฉ”์„œ๋“œ๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค. โญ 3. ์ •๋‹ต์ฝ”๋“œimp..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹ dfs(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰)์œผ๋กœ A,E,I,O,U๋กœ ์กฐํ•ฉํ•ด์„œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๋‹จ์–ด๋ฅผ ๋ฆฌ์ŠคํŠธ์— ๋„ฃ์–ด ์ค€๋‹ค.๊ทธ๋ฆฌ๊ณ  list์˜ ์‚ฌ์ด์ฆˆ๋งŒํผ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฆฌ๋ฉด์„œ word๋ž‘ ์ผ์น˜ํ•˜๋Š” ๋‹จ์–ด๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ์นธ์˜ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.  โญ 3. ์ •๋‹ต์ฝ”๋“œimport java.util.*;class Solution { static List list; static String [] words = {"A", "E", "I", "O", "U"}; public int solution(String word) { int answer = 0; list = new ArrayList(); dfs("", 0); ..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช… ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…์ž…์ถœ๋ ฅ ์˜ˆ #1๋‹ค์Œ ๊ทธ๋ฆผ์€ ์ฃผ์–ด์ง„ ์ž…๋ ฅ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋ฅผ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 4๋ฒˆ๊ณผ 7๋ฒˆ์„ ์—ฐ๊ฒฐํ•˜๋Š” ์ „์„ ์„ ๋Š์œผ๋ฉด ๋‘ ์ „๋ ฅ๋ง์€ ๊ฐ 6๊ฐœ์™€ 3๊ฐœ์˜ ์†ก์ „ํƒ‘์„ ๊ฐ€์ง€๋ฉฐ, ์ด๋ณด๋‹ค ๋” ๋น„์Šทํ•œ ๊ฐœ์ˆ˜๋กœ ์ „๋ ฅ๋ง์„ ๋‚˜๋ˆŒ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” 3๋ฒˆ๊ณผ 4๋ฒˆ์„ ์—ฐ๊ฒฐํ•˜๋Š” ์ „์„ ์„ ๋Š์–ด๋„ ์ตœ์„ ์˜ ์ •๋‹ต์„ ๋„์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ #2๋‹ค์Œ ๊ทธ๋ฆผ์€ ์ฃผ์–ด์ง„ ์ž…๋ ฅ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค.2๋ฒˆ๊ณผ 3๋ฒˆ์„ ์—ฐ๊ฒฐํ•˜๋Š” ์ „์„ ์„ ๋Š์œผ๋ฉด ๋‘ ์ „๋ ฅ๋ง์ด ๋ชจ๋‘ 2๊ฐœ์˜ ์†ก์ „ํƒ‘์„ ๊ฐ€์ง€๊ฒŒ ๋˜๋ฉฐ, ์ด ๋ฐฉ๋ฒ•์ด ์ตœ์„ ์ž…๋‹ˆ๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆ #3๋‹ค์Œ ๊ทธ๋ฆผ์€ ์ฃผ์–ด์ง„ ์ž…๋ ฅ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. 3๋ฒˆ๊ณผ 7๋ฒˆ์„ ์—ฐ๊ฒฐํ•˜๋Š” ์ „์„ ์„ ๋Š์œผ๋ฉด ๋‘ ์ „๋ ฅ๋ง์ด ๊ฐ๊ฐ 4๊ฐœ์™€ 3๊ฐœ์˜ ์†ก์ „ํƒ‘์„ ๊ฐ€์ง€๊ฒŒ ๋˜๋ฉฐ, ์ด ๋ฐฉ๋ฒ•์ด ์ตœ..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช… ๐Ÿ’ก 2. ๋‚˜์˜ ์ฝ”๋“œ ๋ฌธ์ œ์—์„œ ๊ตฌํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ - ์ตœ๋Œ€ ๋ช‡ ๋ฒˆ ๋˜์ „์„ ๋Œ ์ˆ˜ ์žˆ๋Š”์ง€ ํšŸ์ˆ˜ ์ฆ‰, ์กด์žฌํ•˜๋Š” ๋˜์ „๋“ค์„๋กœ ๋„๋Š” ์ˆœ์„œ ๋ฐ”๊ฟ”๊ฐ€๋ฉด์„œ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์กฐํ•ฉ์„ ๋งŒ๋“ ๋‹ค.๋งŒ์•ฝ A,B,C ๋˜์ „์ด ์žˆ๋‹ค๋ฉด? `A-B-C`,`A-C-B`,`B-A-C`,`B-C-A`, `C-A-B`, `C-B-A` ์กฐํ•ฉ์„ ๋ชจ๋‘ ์ˆœํšŒํ•˜๋ฉด์„œ์ตœ๋Œ€๋กœ ๋ช‡ ๋ฒˆ ๋Œ ์ˆ˜ ์žˆ๋Š”์ง€ ์นด์šดํŒ… ํ•ด ์ค€๋‹ค. ๋ฐฑํŠธ๋ž˜ํ‚น๊ณผ DFS(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰)๋ฐฑํŠธ๋ž˜ํ‚น๊ณผ dfs๋กœ ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์กฐํ•ฉ ํ•ด ์ค€๋‹ค.depth ๋Š” ํƒ์ƒ‰ํšŸ์ˆ˜์ด๋‹ค.๊ตฌํ•˜๋Š” ์ˆœ๊ฐ„ answer = Math.max(answer, depth) ํ•ด์„œ ์ตœ๋Œ“๊ฐ’ ์—…๋ฐ์ดํŠธclass Solution { // ์ „์—ญ ๋ณ€์ˆ˜ ์„ ์–ธ public static int answer; // ์ตœ๋Œ€ ๋˜์ „ ํƒํ—˜ ํšŸ์ˆ˜ ..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹์ผ๋‹จ ์ˆซ์ž ์‚ฌ์ด์˜ ๊ทœ์น™์„ ์ฐพ์•„์ฃผ์—ˆ๋‹ค.  ๋…ธํŠธ์— ํ•ด์„œ ์ข€ ์ง€์ €๋ถ„ํ•œ๋ฐbrown + yellow๋ฅผ ํ•ด ์ค€ ๋’ค ๊ทธ ์ˆซ์ž์˜ ์•ฝ์ˆ˜๋ฅผ ๋ชจ๋‘ ์ฐพ์•„๋‚ธ๋‹ค. ์•ฝ์ˆ˜๋“ค์˜ ์ค‘๊ฐ„๊ฐ’์ด ์ฐพ๊ณ ์ž ํ•˜๋Š” ์ˆซ์ž์ด๋‹ค.๋Œ€์‹ , ์ž…์ถœ๋ ฅ ์˜ˆ๋ฅผ ๋ณด๋ฉด ๋” ํฐ ์ˆซ์ž๊ฐ€ ๊ฐ€๋กœ์ด๊ณ  ๋” ์งง์€ ์ˆซ์ž๊ฐ€ ์„ธ๋กœ๋‹ค. brownyellowreturn102[4, 3]81[3, 3]2424[8, 6] ์—ฌ๊ธฐ์„œ brown + yellow ํ•ด ์ฃผ๋ฉด ๊ฐ๊ฐ10+2 = 128 + 1 = 924 + 24 = 48 12์˜ ์•ฝ์ˆ˜ [1, 2, 3, 4, 6, 12]9์˜ ์•ฝ์ˆ˜ [1, 3, 9] 48์˜ ์•ฝ์ˆ˜ [1, 2, 3, 4, 6, 8, 12, 16, 24, 48] ์ค‘ ์ •๋‹ต์€ ์•ฝ์ˆ˜์˜ ๊ฐฏ์ˆ˜๊ฐ€ ์ง์ˆ˜๋ฉด ๊ฐ€์šด๋ฐ ์žˆ๋Š” ์ˆซ์ž ๋‘ ๊ฐœ ์ด๋‹ค. (์ถœ๋ ฅ์€ ํฐ ์ˆซ์ž ๋จผ์ € ํ•ด์•ผ ..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช… ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช… ์˜ˆ์ œ #1[1, 7]์œผ๋กœ๋Š” ์†Œ์ˆ˜ [7, 17, 71]๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์˜ˆ์ œ #2[0, 1, 1]์œผ๋กœ๋Š” ์†Œ์ˆ˜ [11, 101]๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.11๊ณผ 011์€ ๊ฐ™์€ ์ˆซ์ž๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹(1) ์†Œ์ˆ˜ ํŒ๋ณ„ํ•˜๋Š” ๋ฉ”์„œ๋“œ isPrime ๋งŒ๋“ค๊ธฐpublic static boolean isPrime(int num) {        if (num   Math.sqrt()์ฃผ์–ด์ง„ ํ•จ์ˆ˜๋กœ ์ œ๊ณฑ๊ทผ ๋งŒ๋“œ๋Š” ๋ฉ”์„œ๋“œ Square root๋ฅผ ์ค„์—ฌ์„œ sqrt์†Œ์ˆ˜์ธ์ง€ ํŒ๋ณ„ํ•˜๋Š” ๋ฐฉ์‹ : ์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด (2) ์ˆœ์—ด ์ƒ์„ฑํ•˜๋Š” ๋ฉ”์„œ๋“œ generatePeremutations ๋งŒ๋“ค๊ธฐ// ์ˆœ์—ด์„ ์ƒ์„ฑํ•˜๋Š” ์žฌ๊ท€ ๋ฉ”์„œ๋“œpublic void generatePermutations(String p..
1. ๋ฌธ์ œ ์„ค๋ช…2. ์ ‘๊ทผ๋ฐฉ์‹ECOLI_DATA๋Š” ๋ถ€๋ชจ-์ž์‹๊ฐ„์˜ ๊ณ„์ธต ๊ด€๊ณ„๋ฅผ ์ด๋ฃจ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ์„ธ๋Œ€๋ณ„๋กœ ์ž์‹์ด ์—†๋Š” ๊ฐœ์ฒด์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋ ค๋ฉด ์žฌ๊ท€ CTE๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋Œ€์žฅ๊ท ์˜ ์„ธ๋Œ€generation)๋ฅผ ๊ณ„์‚ฐํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. WITH RECURSIVE ๋ธ”๋ก์„ ๋จผ์ € ์ง€์ • ํ•ด ์ฃผ๊ณ , ๋ธ”๋ก ๋ฐ”๊นฅ์—์„œ ์„ธ๋Œ€๋ณ„๋กœ ์ž์‹์ด ์—†๋Š” ๊ฐœ์ฒด์ˆ˜๋ฅผ ์กฐํšŒํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ์งœ ์ฃผ๋ฉด ๋œ๋‹ค. WITH RECURSIVE ๋ธ”๋ก์€ ๋˜ ๋‘ ๋ถ€๋ถ„์œผ๋กœ ๋‚˜๋‰˜๋Š”๋ฐ, ๋จผ์ €, PARENT_ID IS NULL์ธ ์กฐ๊ฑด์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ด์„œ 1์„ธ๋Œ€(AS GENERATION)๋ฅผ ๊ทœ์ • ํ•ด ์ค€๋‹ค. ๋‘ ๋ฒˆ์งธ๋กœ ํ•  ์ผ์€, ์ด 1์„ธ๋Œ€ ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ +1์„ ํ•ด์„œ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ์กฐํšŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ฆ‰, ๋ถ€๋ชจ ๊ฐœ์ฒด๋กœ๋ถ€ํ„ฐ ์ž์‹์˜ ์„ธ๋Œ€ ์ˆ˜๋ฅผ ๊ณ„์‚ฐ ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. Generation ..
์–ด๋ ค์›Œ์„œ ๋ฏธ๋ฃจ๋‹ค๊ฐ€ ๋ชป ํ‘ผ ๋ฌธ์ œ๊ฐ€ 2๊ฐœ ์žˆ์—ˆ๋‹ค. Lv4 ๋ฌธ์ œ 1๊ฐœ๋ž‘ Lv5 ๋ฌธ์ œ 1๊ฐœ์ด๋‹ค. ๋‚œ์ด๋„ ์ตœ์ƒ์ธ ๋งŒํผ, ๋ฌธ์ œ ์ฝ๊ธฐ๋„ ์ „์— ํ’€๊ธฐ๊ฐ€ ๋‘๋ ค์šด ๋งˆ์Œ์ด ์žˆ์—ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ์™ ์ง€ ์˜ค๋žซ ๋™์•ˆ ๋…ธํŠธ๋ถ ์•ž์— ์•‰์•„์„œ ๋จธ๋ฆฌ ๋งŽ์ด ์“ฐ๊ณ  ๊ณ ๋ฏผํ•ด ๋ด์•ผ ๋  ๊ฒƒ ๊ฐ™์•„์„œ ํ•˜๊ธฐ์‹ซ์—ˆ๋‹ค. MySQL์—์„œ๋Š” START WITH CONNECT BY๊ฐ€ ์•ˆ๋œ๋‹ค๋Š” ๊ฑฐ ์•Œ๊ณ ๋ถ€ํ„ฐ๋Š” ๋˜ ์ƒˆ๋กœ์šด๊ฑฐ ๋ฐฐ์šฐ๊ธฐ ์‹ซ์–ด์„œ ๋ฏธ๋ค˜๋Š”๋ฐ ์˜ค๋Š˜ ์–ผ๋ฅธ ๋๋‚ด๋ฒ„๋ฆฌ๊ณ  ์ž์•ผ์ง€1. ๋ฌธ์ œ์„ค๋ช…2. ์ ‘๊ทผ๋ฐฉ์‹์ฒ˜์Œ์—๋Š” ์–ด๋ ค์›Œ ๋ณด์—ฌ์„œ ๋ฌธ์ œ๋ฅผ ์ฝ๊ณ  ๋ญ˜ ๊ตฌํ•ด์•ผ ํ•˜๋Š”์ง€ ์ƒ๊ฐ์˜ ํ๋ฆ„์„ ํ•œ๊ธ€๋กœ ๋ฐ›์•„ ์ ์–ด ๋ดค๋‹ค. PARENT_ID๊ฐ€ NULL์ด๋ฉด 1์„ธ๋Œ€์ด๋‹ค. PARENT_ID๊ฐ€ NULL์ธ ID๋ฅผ ๋ถ€๋ชจ๋กœ ๊ฐ€์ง€๋Š” ํ–‰์ด 2์„ธ๋Œ€ ์ด๋‹ค. PARENT_ID๊ฐ€ NULL์ธ ID๋ฅผ ๋ถ€๋ชจ๋กœ ๊ฐ€์ง€๋Š” ํ–‰์˜ ID๋ฅผ ๋ถ€๋ชจ๋กœ ๊ฐ€..
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (3 Page)
์ƒ๋‹จ์œผ๋กœ