Banner

My Tech Blog (Algorithm)

๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹์ด ๋ฌธ์ œ๋Š” ํ•ด์‹œ๋งต์„ ์‚ฌ์šฉํ•ด์„œ ํ’€์—ˆ๋‹ค.๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ ์ˆซ์ž์˜ ๋“ฑ์žฅ ํšŸ์ˆ˜๋ฅผ ์นด์šดํŠธํ•ด์„œ ํ•ด์‹œ๋งต์— ์ €์žฅํ•œ๋‹ค.  (key: ๋“ฑ์žฅํ•œ ์ˆซ์ž, value: ์นด์šดํŠธ)ํ•ด์‹œ๋งต์„ ์ˆœํšŒํ•˜๋ฉด์„œ ์ตœ๋นˆ๊ฐ’์„ ์ฐพ๋Š”๋‹ค. → maxCount๋ณด๋‹ค ๋” ํฐ count(value ๊ฐ’)์ด ์กด์žฌํ•˜๋ฉด maxCount๋ฅผ count๋กœ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค.์ด ๊ณผ์ •์—์„œ ๋“ฑ์žฅ ํšŸ์ˆ˜๊ฐ€ ๋™์ผํ•œ ๊ฐ’์ด ์žˆ๋Š”์ง€๋„ ํƒ์ƒ‰ํ•œ๋‹ค. ๋งŒ์•ฝ ์ค‘๋ณต๋œ ์ตœ๋นˆ๊ฐ’์ด ์žˆ์œผ๋ฉด isDuplicate๋ฅผ true๋กœ ๋ฐ”๊พผ๋‹ค. ์ตœ์ข…์ ์œผ๋กœ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ์จ์„œ ์ค‘๋ณต์ด ์žˆ์œผ๋ฉด -1์„ ๋ฐ˜ํ™˜, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ตœ๋นˆ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.โญ 3. ์ •๋‹ต์ฝ”๋“œimport java.util.HashMap;import java.util.Map;class Solution { public int ..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ์ ‘๊ทผ๋ฐฉ์‹ โœ”๏ธ ๋ฌธ์ œ ์š”์•ฝ - ์ง€๋ขฐ์ฐพ๊ธฐ ๊ฒŒ์ž„board๋Š” n x n ํฌ๊ธฐ์˜ 2D ๋ฐฐ์—ด์ด๋‹ค.์ง€๋ขฐ๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋Š” 1, ์—†๋Š” ์œ„์น˜๋Š” 0์ด๋‹ค.์ง€๋ขฐ(1)๊ฐ€ ์žˆ๋Š” ๊ณณ์„ ๊ธฐ์ค€์œผ๋กœ ์ฃผ๋ณ€ 8๋ฐฉํ–ฅ + ์ž๊ธฐ ์ž์‹ ๊นŒ์ง€ ์œ„ํ—˜์ง€๋Œ€(1)๋กœ ํ‘œ์‹œํ•ด์•ผ ํ•œ๋‹ค.์ตœ์ข…์ ์œผ๋กœ ์•ˆ์ „ํ•œ ์ง€์—ญ(0)์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.โœ”๏ธ ํ’€์ด ๋ฐฉ์‹๋ฐฐ์—ด bd[][] ์ƒ์„ฑ → ๊ธฐ์กด board[][]์˜ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.board[][] ์—์„œ ์ง€๋ขฐ(1)๋ฅผ ์ฐพ์œผ๋ฉด ์ฃผ๋ณ€ 8๋ฐฉํ–ฅ + ์ž๊ธฐ ์ž์‹ ์„ 1๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.์ด ๋•Œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ๋ฐฐ์—ด ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๋„๋ก Math.min(), Math.max()๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ธ๋ฑ์Šค ์œ„์น˜๋ฅผ ์กฐ์ •ํ•œ๋‹ค.๋ชจ๋“  ์œ„ํ—˜์ง€๋Œ€๋ฅผ ํ‘œ์‹œํ•œ ํ›„ ๋‚จ์€ 0์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์–ด ๋ฐ˜ํ™˜ํ•œ๋‹ค.๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•ด ๋ณด์•˜๋‹ค. ์ง€๋ขฐ๊ฐ€ ์žˆ๋Š” ์œ„์น˜ ์ฆ‰, boa..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…Write a function to find the longest common prefix string amongst an array of strings.If there is no common prefix, return an empty string "".Note: All given inputs are in lowercase letters a-z. a-z์˜ ์†Œ๋ฌธ์ž ์•ŒํŒŒ๋ฒณ์œผ๋กœ ๋‹จ์–ด๋“ค๋กœ ๊ตฌ์„ฑ๋œ ๋ฐฐ์—ด์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋ชจ๋“  ๋ฌธ์ž์—ด์— ๊ณตํ†ต๋˜๋Š” ๊ฐ€์žฅ ๊ธด ์ ‘๋‘์‚ฌ๋ฅผ ๋ฆฌํ„ดํ•˜๋ผ. ์ ‘๋‘์‚ฌ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ๋นˆ ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•˜๋ผ. Example 1Input: ["flower","flow","flight"] Output: "fl" Example 2Input: ["dog","racecar","car"] Output..
1. ํ(queue)๋ž€ ๋ฌด์—‡์ธ๊ฐ€?'ํ(queue)' ๋ž€ '์ค„์„ ์„œ๋‹ค'๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ํ๋Š” ๋จผ์ € ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋ฉฐ, ์ด๋Ÿฐ ํ์˜ ํŠน์ง•์„ FIFO(First In First Out) ๋˜๋Š” ์„ ์ž…์„ ์ถœ์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ์—์„œ ์‚ฝ์ž…ํ•˜๋Š” ์—ฐ์‚ฐ์„ Enqueue(add) ๋ผ๊ณ  ํ•˜๊ณ , ๊บผ๋‚ด๋Š ์—ฐ์‚ฐ์„ Dequeue(Poll) ์ด๋ผ๊ณ  ํ•œ๋‹ค. 2. ํ์˜ ADT๊ตฌ๋ถ„์ •์˜์„ค๋ช…์—ฐ์‚ฐboolean isFull()ํ์— ๋“ค์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๊ฐ€ maxsize ์ธ์ง€ ํ™•์ธ ํ•ด์„œ  boolean  ๊ฐ’์„ ๋ฐ˜ํ™˜boolean isEmpty()ํ์— ๋“ค์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋Š”์ง€ ํ™•์ธํ•ด์„œ boolean ๊ฐ’์„ ๋ฐ˜ํ™˜void add(ItemType item)ํ์— ๋ฐ์ดํ„ฐ ์‚ฝ์ž…ItemType poll()ํ์—์„œ ์ฒ˜์Œ์— ์‚ฝ์ž…ํ•œ ์ œ..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช… ํ”„๋กœ๊ทธ๋ž˜๋จธ์ŠคSW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„programmers.co.kr๐Ÿ’ก 2. ํ’€์ด ๊ณผ์ •์ด ๋ฌธ์ œ๋Š” queue ๋กœ ํ‘ธ๋Š” ๋ฌธ์ œ์ด๋‹ค (์ด๊ฑธ ์œ ์ถ”ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„)card1๊ณผ card2๋Š” ๋ฌด์กฐ๊ฑด ์•ž๋ถ€ํ„ฐ ์‚ฌ์šฉํ•ด์•ผ ํ•จ์ˆœ์„œ๋ฅผ ๋’ค๋ฐ”๊ฟ€ ์ˆ˜ ์—†์Œ์ด ๋‘ ๋ฌธ์žฅ์€ FIFO ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.๊ทธ๋ž˜์„œ card1, card2, goal ์„ ํ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•˜๋‹ค.  card1๊ณผ card2, goal์„ ํ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.goal์˜ front์™€ (card1 ๋˜๋Š” card2)์˜ front์˜ ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค.์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์นด๋“œ๊ฐ€ ์žˆ๋Š”๊ฐ€? (๊ฐ’์ด ๊ฐ™์œผ๋ฉด ์‚ฌ์šฉ ๊ฐ€๋Šฅ)Yes์ด๋ฉด ํ•ด๋‹น ํ์™€ goal์—์„œ ๊ฐ๊ฐ poll, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด No๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…โœ… ๋ฌธ์ œ ์ด๋ฌธ์ œ๋Š” ์œ ๋Œ€์ธ ์—ญ์‚ฌ๊ฐ€ ํ”Œ๋ผ๋น„์šฐ์Šค ์š”์„ธํ‘ธ์Šค๊ฐ€ ๋งŒ๋“  ๋ฌธ์ œ์ด๋‹ค. N๋ช…์˜ ์‚ฌ๋žŒ์ด ์› ํ˜•ํƒœ๋กœ ์„œ ์žˆ๋‹ค. ๊ฐ ์‚ฌ๋žŒ์€ 1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋ฒˆํ˜ธํ‘œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž„์˜์˜ ์ˆซ์ž K๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ๋žŒ์„ ์—†์•ค๋‹ค.1๋ฒˆ ๋ฒˆํ˜ธํ‘œ๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ์„ ๊ธฐ์ค€์œผ๋กœ K๋ฒˆ์งธ ์‚ฌ๋žŒ์„ ์—†์•ค๋‹ค.์—†์•ค ์‚ฌ๋žŒ ๋‹ค์Œ ์‚ฌ๋žŒ์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜๊ณ  ๋‹ค์‹œ K๋ฒˆ์งธ ์‚ฌ๋žŒ์„ ์—†์•ค๋‹ค.N๊ณผ K๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๋งˆ์ง€๋ง‰์— ์‚ด์•„ ์žˆ๋Š” ์‚ฌ๋žŒ์˜ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” solution() ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ•ด์ฃผ์„ธ์š” โœ… ์ œ์•ฝ์กฐ๊ฑดN๊ณผ K๋Š” 1์ด์ƒ 1000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋‹ค. โœ… ์ž…์ถœ๋ ฅ ์˜ˆNKreturn523 ๐Ÿ’ก 2. ํ’€์ด ๊ณผ์ •์ž…์ถœ๋ ฅ ์˜ˆ๋ฅผ ๊ทธ๋Œ€๋กœ ๊ทธ๋ฆผ์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.N = 5, K = 2 ์ด๊ณ  ์‚ฌ๋žŒ๋งˆ๋‹ค 1~5๋ฒˆ๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ๋ถ™์—ฌ ์›ํ˜•์œผ๋กœ ๋ฐฐ์น˜ํ•œ๋‹ค.๊ทธ๋ฆฌ๊ณ  ์ฒซ๋ฒˆ์งธ ..
๐Ÿ“‘ 1. ๋ฌธ์ œ์„ค๋ช…๐Ÿ’ก 2. ํ’€์ด ๊ณผ์ • ๋ฌธ์ œ๋ฅผ ์š”์•ฝํ•˜๋ฉด ํ† ๋„ˆ๋จผํŠธ ๊ฒŒ์ž„์—์„œ ํŠน์ •ํ•œ ๋ฒˆํ˜ธ์˜ ๋‘ ์ฐธ๊ฐ€์ž๊ฐ€ ๋งŒ๋‚  ๋•Œ ๊นŒ์ง€ ๋ช‡ ๋ฒˆ์˜ ๊ฒฝ๊ธฐ๋ฅผ ์ง„ํ–‰ํ•ด์•ผ ํ•˜๋Š”์ง€ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.  ์ฒ˜์Œ์— ์ฐธ๊ฐ€์ž๋“ค์€ 1๋ถ€ํ„ฐ N๊นŒ์ง€ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ›๋Š”๋‹ค.๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ๋ผ์šด๋“œ์— ์ง„์ถœํ•œ ์ฐธ๊ฐ€์ž๋“ค์€ ๋‹ค์‹œ 1๋ถ€ํ„ฐ N/2 ๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ›๋Š”๋‹ค. ์ž…์ถœ๋ ฅ ์˜ˆN=8, A=4, B=7 ์ด ๊ฒฝ์šฐ 8๋ช…์˜ ์ฐธ๊ฐ€์ž๋“ค์ด ๊ฒฝ๊ธฐ๋ฅผ ํ•  ๋•Œ 4๋ฒˆ ์„ ์ˆ˜์™€ 7๋ฒˆ ์„ ์ˆ˜๊ฐ€ ๋งŒ๋‚  ๋•Œ๊นŒ์ง€์˜ ๊ฒฝ๊ธฐ ํšŸ์ˆ˜๋ฅผ ์•„๋ž˜ ๊ทธ๋ฆผ์œผ๋กœ ๊ทธ๋ ค ๋ณด์•˜๋‹ค.๊ฐ ๋ผ์šด๋“œ์—์„œ 4๋ฒˆ๊ณผ 7๋ฒˆ์€ ํ•ญ์ƒ ์ด๊ฒจ์„œ ๋‹ค์Œ ๋ผ์šด๋“œ๋กœ ์ง„์ถœํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ํ’€์–ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.4๋ฒˆ๊ณผ 7๋ฒˆ์€ ๊ณ„์† ์ด๊ฒจ์„œ ๋‹ค์Œ ๋ผ์šด๋“œ๋กœ ์ง„์ถœํ•œ๋‹ค4๋ฒˆ์€ 3๋ฒˆ์„ ์ด๊ธฐ๊ณ , 1 ๋˜๋Š” 2๋ฒˆ์„ ์ด๊ฒจ์„œ ์ด 2๋ฒˆ ์ด๊ธด๋‹ค7๋ฒˆ์€ 8๋ฒˆ์„ ์ด๊ธฐ๊ณ , 5 ๋˜๋Š” 6๋ฒˆ์„ ์ด๊ฒจ์„œ ์ด ..
์Šคํƒ(Stack)๊ฐœ์š”"์Šคํƒ"์€ ๋ฐ์ดํ„ฐ๋ฅผ ์Œ“์•„์„œ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, "ํ›„์ž…์„ ์ถœ(LIFO, Last In First Out)" ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค. ์ฆ‰, ๋‚˜์ค‘์— ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋Š” ๊ตฌ์กฐ์ด๋‹ค. ์Šคํƒ์€ ์ฃผ๋กœ ํ•จ์ˆ˜ ํ˜ธ์ถœ, ๊ณ„์‚ฐ๊ธฐ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ˆ˜์‹ ๊ณ„์‚ฐ, ๋˜๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ๋’ค๋กœ ๊ฐ€๊ธฐ ๊ธฐ๋Šฅ ๋“ฑ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค.* ์ด์™€ ๋ฐ˜๋Œ€์˜ "์„ ์ž…์„ ์ถœ(FIFO, First In First Out)" ๊ตฌ์กฐ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ 'ํ'๋ผ๊ณ  ํ•œ๋‹ค.   ์Šคํƒ์„ ํ™œ์šฉํ•œ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋ฌธ์ œ๋Š” ์œ ํ˜•์ด ์ •ํ•ด์ ธ ์žˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ์ž˜ ์ฝ์–ด๋ณด๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์Œ“์•„ ์˜ฌ๋ฆฐ๋‹ค๋“ ์ง€, ๋‚˜์ค‘์— ์Œ“์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด๋ฉด ์Šคํƒ์„ ํ™œ์šฉํ•˜๋ฉด ๋œ๋‹ค.  ์Šคํƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ œ ์œ ํ˜• โœ… ๊ด„ํ˜ธ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์—์„œ ๊ด„ํ˜ธ์˜ ์ง์ด ๋งž๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๋ฌธ์ œ์Šคํƒ์„ ์‚ฌ์šฉํ•ด ์—ฌ๋Š” ๊ด„ํ˜ธ๋Š” ์Šค..
์ธ์ ˆ๋ฏธ์˜€๋˜๊ฒƒ
'Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก
์ƒ๋‹จ์œผ๋กœ