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

๐Ÿƒ algorithm/leetcode93

LeetCode 2390 - Removing Stars From a String (Medium) ๐Ÿ’ก ๋ฌธ์ œ LeetCode - 2390๋ฒˆ ๐ŸŽฏ ํ’€์ด ๊ณผ์ • ๋ณ„ํ‘œ (*)๋ฅผ ํฌํ•จํ•œ ๋ฌธ์ž์—ด s ์—์„œ ๋‹ค์Œ ๊ทœ์น™์— ๋”ฐ๋ผ ๋ชจ๋“  ๋ณ„ํ‘œ๊ฐ€ ์ œ๊ฑฐ๋œ ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋ณ„ํ‘œ๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ณ„ํ‘œ๋ณด๋‹ค ์•ž์ชฝ์— ์œ„์น˜ํ•œ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์Šคํƒ์„ ํ™œ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•œ๋ฐ, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์— (10^5) ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ ์ž๋ฃŒ๊ตฌ์กฐ์— ํ•˜๋‚˜์”ฉ push, pop ํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทœ์น™์„ ํ™œ์šฉํ•ด์„œ ๋ฌธ์ž์—ด์˜ ๊ฐ€์žฅ ๋’ค์ชฝ ๋ถ€ํ„ฐ ์ˆœํšŒ๋ฅผ ํ•ด์ค๋‹ˆ๋‹ค. ์ด๋•Œ * ๋ฅผ ๋งŒ๋‚˜๋ฉด answer ์— ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ๋ณ„ํ‘œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ณ„์† ์„ธ์–ด์ฃผ๋‹ค๊ฐ€ ์ผ๋ฐ˜ ์•ŒํŒŒ๋ฒณ์„ ๋ฐœ๊ฒฌํ•˜๋ฉด ์ €์žฅํ•ด๋†จ๋˜ ๋ณ„ํ‘œ ๊ฐœ์ˆ˜๋ฅผ ํ•˜๋‚˜์”ฉ ์ค„์ด๊ณ , ๋งŒ์•ฝ ์ €์žฅ๋˜์–ด์žˆ๋Š” ๋ณ„ํ‘œ ๊ฐœ์ˆ˜๊ฐ€ ์—†๋‹ค๋ฉด ๊ทธ ๋ฌธ์ž๋ฅผ answer ์— ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค... 2023. 4. 24.
LeetCode 1603 - Design Parking System (Easy) ๐Ÿ’ก ๋ฌธ์ œ LeetCode - 1603๋ฒˆ ๐ŸŽฏ ํ’€์ด ๊ณผ์ • 3์ข…์˜ ์ฐจ๋Ÿ‰ (big, medium, small) ์„ ์ˆ˜์šฉํ•˜๋Š” ์ฃผ์ฐจ์žฅ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. carType ์ธ๋ฑ์‹ฑ์„ ํŽธํ•˜๊ธฐ ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ํ•˜๋‚˜ ๋Š˜๋ ค์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ‘จ‍๐Ÿ’ป ์ฝ”๋“œ /** * @param {number} big * @param {number} medium * @param {number} small */ var ParkingSystem = function(big, medium, small) { this.parkingSlots = [0, big, medium, small] }; /** * @param {number} carType * @return {boolean} */ ParkingSystem.prototype.addCar .. 2023. 4. 24.
LeetCode 15 - 3Sum (Medium) ๐Ÿ’ก ๋ฌธ์ œ LeetCode - 15๋ฒˆ ๐ŸŽฏ ํ’€์ด ๊ณผ์ • ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์—์„œ 3๊ฐœ์˜ ์›์†Œ์˜ ์กฐํ•ฉ ์ค‘ ํ•ฉ์ด 0์ธ ๊ฒƒ๋“ค์„ ์ค‘๋ณต์—†์ด ๋ชจ๋‘ ์ฐพ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ ์ž…๋ ฅ ํฌ๊ธฐ๋ฅผ ๊ณ ๋ คํ•ด์„œ ์ผ๋ฐ˜ ์กฐํ•ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋ณด๋‹ค ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ํˆฌ ํฌ์ธํ„ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ™œ์šฉํ•˜๋ฉด, ํŠน์ • ํ•ฉ S ๋ฅผ ๋งŒ์กฑํ•˜๋Š” ๋ฐฐ์—ด ์Œ์„ ์ค‘๋ณต์—†์ด ์ฐพ๋Š”๋ฐ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ๋ฐฐ์—ด์€ ์ •๋ ฌ์ด ๋œ ์ƒํƒœ์—ฌ์•ผํ•ฉ๋‹ˆ๋‹ค. (์ค‘๋ณต ์ œ๊ฑฐ๋ฅผ ์œ„ํ•ด) ์ด ๋ฌธ์ œ๋ฅผ ์•ฝ๊ฐ„ ๋ณ€ํ˜•ํ•ด๋ณด๋ฉด ์„ธ ์›์†Œ ์ค‘ ๊ฐ€์žฅ ์ฒซ๋ฒˆ์งธ ์š”์†Œ๋ฅผ pivot ์œผ๋กœ ์ •ํ•˜๊ณ , ๋‚˜๋จธ์ง€ ๋‘ ์š”์†Œ๋Š” pivot ์„ ์ œ์™ธํ•œ ๊ตฌ๊ฐ„์—์„œ sum - arr[pivot] ์„ ์ฐพ๋Š” ๋ฌธ์ œ๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์ค‘๋ณต ์ œ๊ฑฐ๋ฅผ ์œ„ํ•ด pivot ์ด ๋ฐ”๋กœ ์ง์ „ pivot ๊ฐ’๊ณผ ๋™์ผํ•  ๊ฒฝ์šฐ ๋ฌด์‹œํ•˜๊ณ , ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‚˜๋จธ์ง€ ๋‘ ์š”์†Œ ์ค‘ ์ฒซ๋ฒˆ์งธ ์š”.. 2023. 4. 24.
LeetCode 13 - Roman to Integer (Easy) ๐Ÿ’ก ๋ฌธ์ œ LeetCode - 13๋ฒˆ ๐ŸŽฏ ํ’€์ด ๊ณผ์ • ๋กœ๋งˆ ์ˆซ์ž๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๋กœ๋งˆ ์ˆซ์ž๋Š” ๊ฐ์‚ฐ, ๊ฐ€์‚ฐ ์—ฐ์‚ฐ๋ฒ•์„ ํ•จ๊ป˜ I, V, X, L, C, D, M ์˜ ๋ฌธ์ž๋ฅผ ๋‚˜์—ดํ•˜์—ฌ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ์— ์•ž ์ž๋ฆฌ๋ถ€ํ„ฐ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ทธ ๋‹ค์Œ ์ˆซ์ž์™€ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•˜์—ฌ ํ•ฉ์‚ฐํ•ด์•ผํ•  ํฌ๊ธฐ๋ฅผ ์•Œ์•„๋ƒ…๋‹ˆ๋‹ค. ์ด๋•Œ ๋ฐ˜๋ณต๋ฌธ ๋Œ€์‹  ์žฌ๊ท€ ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ข€ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘จ‍๐Ÿ’ป ์ฝ”๋“œ /** * @param {string} s * @return {number} */ var romanToInt = function(s) { const roman = { 'I': 1, 'V': 5, 'X': 10, 'L': 50, 'C': 100, 'D': 500, 'M': 1000, } function transform(here) { i.. 2023. 4. 24.
LeetCode 994 - Rotting Oranges (Medium) ๐Ÿ’ก ๋ฌธ์ œ LeetCode - 994๋ฒˆ ๐ŸŽฏ ํ’€์ด ๊ณผ์ • ๋งค ๋‹จ์œ„์‹œ๊ฐ„(minute) ๋งˆ๋‹ค ์ฉ์€ ์˜ค๋ Œ์ง€์— ์ธ์ ‘ํ•œ 4๋ฐฉํ–ฅ์— ์œ„์น˜ํ•œ ์˜ค๋ Œ์ง€๊ฐ€ ํ•จ๊ป˜ ์ฉ๋Š”๋‹ค๊ณ  ํ• ๋•Œ ์ฃผ์–ด์ง„ grid ์—์„œ ๋ชจ๋“  ์˜ค๋ Œ์ง€๊ฐ€ ์ฉ๊ธฐ๊นŒ์ง€ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ BFS ํƒ์ƒ‰์—์„œ ์•ฝ๊ฐ„์˜ ๋ณ€ํ˜•์ด ํ•„์š”ํ•œ ์œ ํ˜•์ž…๋‹ˆ๋‹ค. ์ฉ์€ ์˜ค๋ Œ์ง€๋ฅผ queue ์— ๋„ฃ์–ด์ฃผ๊ณ  queue ๊ฐ€ ๋น„์–ด์งˆ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ด์•ผ์ง€ ๊ฐ๊ฐ์˜ ๋‹จ์œ„ ์‹œ๊ฐ„๋งˆ๋‹ค ํ˜„์žฌ queue ์— ๋‹ด๊ฒจ์žˆ๋Š” ์˜ค๋ Œ์ง€๋“ค์— ๋Œ€ํ•ด BFS ๋ฅผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณดํ†ต BFS ๋ฅผ ํ•  ๋•Œ ์ค‘๋ณต ๋ฐฉ๋ฌธ์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด visit ๊ฐ™์€ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์–ด ์ด์šฉํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ๋Š” ์˜ค๋ Œ์ง€๊ฐ€ ์ฉ์€ ์ƒํƒœ์ผ ๋•Œ๋ฅผ ์ด๋ฏธ ๋ฐฉ๋ฌธํ•œ ์œ„์น˜๋กœ ํŒ๋‹จ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋ฐฉ๋ฌธ์—ฌ๋ถ€๋ฅผ ์œ„ํ•œ ๋ณ„๋„์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋งŒ๋“ค์–ด์ฃผ์ง€ ์•Š๊ณ  ์ƒํƒœ๊ฐ’์œผ๋กœ ํŒ๋‹จํ•˜๋„๋ก ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.. 2023. 4. 24.
LeetCode 24 - Swap Nodes in Pairs (Medium) ๐Ÿ’ก ๋ฌธ์ œ LeetCode -24๋ฒˆ ๐ŸŽฏ ํ’€์ด ๊ณผ์ • ๋’ค์—์„œ๋ถ€ํ„ฐ ๋…ธ๋“œ์˜ ์ˆœ์„œ๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ๋ณ€๊ฒฝ(swap)ํ•˜๋Š” ์š”๊ตฌ์กฐ๊ฑด์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ํฌ์ธํ„ฐ๋ฅผ ๋ฐ”๊ฟ”์ฃผ๊ธฐ ์œ„ํ•ด ์žฌ๊ท€ํ˜ธ์ถœ ์‹œ ํ˜„์žฌ ๋…ธ๋“œ์™€ ์ด์ „๋…ธ๋“œ์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ํ•จ๊ป˜ ์ „๋‹ฌํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ‘จ‍๐Ÿ’ป ์ฝ”๋“œ /** * Definition for singly-linked list. * function ListNode(val, next) { * this.val = (val===undefined ? 0 : val) * this.next = (next===undefined ? null : next) * } */ /** * @param {ListNode} head * @return {ListNode} */ var swapPairs = function(head) { funct.. 2023. 2. 20.