๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป ๐ŸŒฎ ๐Ÿ’ฌ

๐Ÿ’ป leetcode/algorithms4

[LeetCode] Algorithms | 21. Merge Two Sorted Lists | Python Problems ํ•ญ์ƒ Linked List๋งŒ ๋‚˜์˜ค๋ฉด ๋งŽ์ด ํ—ท๊ฐˆ๋ ค์„œ ์—ฐ์Šต์žฅ์— ํ•˜๋‚˜ํ•˜๋‚˜ ๊ทธ๋ ค๋ณด๊ณ  ์ ์–ด๋ณธ๋‹ค.์ž˜ ์“ฐ์ง€ ์•Š์•„์„œ ์ต์ˆ™ํ•˜์ง€ ์•Š์•„์„œ๊ฒ ์ง€ ์ด๋ ‡๊ฒŒ๋‚˜๋งˆ ๊ณ„์† ์ ‘ํ•˜๋ฉด ์ต์ˆ™ํ•ด์ง€๊ฒ ์ง€ ์•”ํŠผ ํ•ด์•ผํ•˜๋Š” ์ผ์€ list๋ฅผ mergeํ•˜๊ณ  ์ˆœ์„œ๋Œ€๋กœ ์ •๋ ฌํ•ด์•ผํ•œ๋‹ค.๊ทธ๋ƒฅ python ํ•จ์ˆ˜๋กœ extend ํ•˜๊ณ  sort ๋•Œ๋ ค๋ฒ„๋ฆฌ๊ณ  ์‹ถ์ง€๋งŒ ๊ทธ๋ž˜๋„ ํ•œ๋ฒˆ ์ฐจ๊ทผ์ฐจ๊ทผ ํ•ด๋ณด์ž 1. ์šฐ์„  ๋นˆ list1๊ฐ€ ๋นˆ list์ด๋ฉด, list2๋กœ return ํ•ด์ฃผ๊ณ , ๊ทธ ๋ฐ˜๋Œ€๋กœ list2๊ฐ€ ๋นˆ list์ด๋ฉด list1์œผ๋กœ return ํ•ด์ฃผ๊ธฐ2. while ๋ฌธ์„ ํ†ตํ•ด์„œ ๋นˆ list์ผ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ด์ฃผ๊ธฐ3. ListNode์˜ val๋ฅผ ๊ฐ€์ง€๊ณ ์™€์„œ ํฌ๊ธฐ ๋น„๊ตํ•ด์ฃผ๊ธฐ   3-1. list1์˜ val์ด ๋” ํฌ๋‹ค๋ฉด, ๋น„์–ด์žˆ๋Š” ListNode์— list1์„ ๋‹ด์•„์ฃผ๊ณ  list1์˜.. 2024. 7. 24.
[LeetCode] Algorithms | 20. Valid Parentheses | Python Problems ๋ฌธ์ œ๋ฅผ ์ฝ๊ณ , ๊ทธ๋ƒฅ ์ˆœ์„œ ์ƒ๊ด€์—†์ด s์•ˆ์— ์ง ๋งž๋Š” ๊ด„ํ˜ธ๋งŒ ์žˆ์œผ๋ฉด ๋˜๋Š” ์ค„ ์•Œ์•˜๋‹ค.๊ทธ๋ž˜์„œ ์ง  ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.์ง„์งœ ๋‹จ์ง€ ์ง๋งŒ ๋งž์œผ๋ฉด ๋˜๊ธฐ์—, ๊ฐ™์€ ๊ด„ํ˜ธ ์ง์ˆ˜ ๊ฐœ์ธ์ง€ ํ™•์ธํ•˜๊ณ  returnwrong ์ด๋ผ๊ณ  ํ•œ๋‹ค.๋ณด๋‹ˆ๊นŒ, ๊ฐ™์€ ๊ด„ํ˜ธ๋ผ๋ฆฌ๋Š” ๋ถ™์–ด์žˆ์–ด์•ผํ•˜๋‚˜๋ณด๋‹ค. ๋งŒ์•ฝ s = '( [ { } ] )' ์ผ ๊ฒฝ์šฐ์—๋Š” ์—ฌ๋Š” ๊ด„ํ˜ธ ์ˆœ์„œ  ( โ†’ [ โ†’ {  ์™€ ๋‹ซ๋Š” ๊ด„ํ˜ธ  } โ†’ ] โ†’ ) ์ˆœ์„œ๋Š” ๋ฐ˜๋Œ€์ด๋‹ค.์ด๋Ÿฐ ๊ฒฝ์šฐ์— ์—ฌ๋Š” ๊ด„ํ˜ธ ์ˆœ์„œ๋กœ stack์— ์Œ“์•„์ฃผ๊ณ , ๋’ค์— ์Œ“์ธ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ€์ง€๊ณ  ์™€์„œ ๋‹ซ๋Š” ๊ด„ํ˜ธ ํ™•์ธํ•˜๋Š” ๊ฑธ๋กœ ํ•ด์•ผ๊ฒ ๋‹ค.๊ทธ๋Ÿผ LIFO ๊ฐ€ ๋˜๋Š”๊ฑฐ๊ณ , list์—์„œ ๋’ค์— ์š”์†Œ๋ถ€ํ„ฐ ๊ฐ€์ง€๊ณ  ์™€์„œ ์ง€์›Œ์ฃผ๋Š” pop ์„ ์‚ฌ์šฉํ•ด์•ผ๊ฒ ๋‹ค(remove๋Š” ์•ž ์š”์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์˜ค๊ณ  ์ง€์›Œ์ค€๋‹ค.) ๊ทธ๋ž˜์„œ ์ž‘์„ฑํ•œ ์Šคํฌ๋ฆฝํŠธ๋Š” ์•„๋ž˜์™€ ๊ฐ™.. 2024. 7. 23.
[LeetCode] Algorithms | 14. Longest Common Prefix | Python Problems ์ œ์ผ ๊ธด common prefix๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค.์ด๊ฑธ ํ•˜๋‚˜ํ•˜๋‚˜ ์–ด๋–ป๊ฒŒ ๊ฒ€์‚ฌํ•ด์•ผํ•˜๋‚˜ ๊ณ ๋ฏผ์ด ๋˜์—ˆ๋‹ค.์šฐ์„  ์ œ์ผ ์งง์€ ๋‹จ์–ด๋ฅผ ๊ธฐ์ค€์„ ์žก๊ณ  ์‹œ์ž‘ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ์ฒ˜์Œ์—” shortest_word = min(strs, len) ์œผ๋กœ ํ•˜๋‚˜ ์ง€์ •์„ ํ•œ ์ƒํƒœ๋กœ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ,์Œ ๊ทธ๋ƒฅ ์ •๋ ฌ๋กœ ์ฒซ๋ฒˆ์งธ ๋ฐ•์•„๋†“๊ณ  ํ•˜๋ฉด ์ข€ ๋” ์ˆ˜์›”ํ•˜๊ฒ ๋‹ค ์ƒ๊ฐํ–ˆ๋‹คstrs.sort(key = lambda x : len(x))for i in range(len(strs[0])): for j in range(1, len(strs)): if strs[0][i] != strs[j][i]: return strs[0][:i]return strs[0] ์ œ์ผ ์งง์€ ๋‹จ์–ด str[0] ์„ ๊ธฐ์ค€์„ ์žก๊ณ , ๊ทธ ๋‹ค์Œ .. 2024. 7. 12.
[LeetCode] Algorithms | 13. Roman to Integer | Python Problems Thinking์œ„์—์„œ ์ •์˜ํ•œ Symbol, Value๋ฅผ Dict๋กœ ์„ ์–ธํ•ด์ฃผ๊ณ  mapping ์‹œ์ผœ์ฃผ๋ฉด ๋˜๋Š” ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ๋‹ค.์‹ ๊ฒฝ์จ์•ผํ•  ๋ถ€๋ถ„์€์ด๋ ‡๊ฒŒ 2๊ฐœ์˜ ๋ฌธ์ž๊ฐ€ ๋งŒ๋‚ฌ์„ ๋•Œ ์ˆซ์ž๊ฐ€ ๋ฐ”๋€๋‹ค๋Š” ์ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ถ„๊ธฐ์ฒ˜๋ฆฌํ•ด์„œ ํ• ๊นŒ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ์˜คํžˆ๋ ค ๋” ๋ณต์žกํ•˜๊ณ  ์‹œ๊ฐ„๋„ ๋งŽ์ด ์†Œ์š”๋  ๊ฒƒ์ด๋ผ ํŒ๋‹จ mapping ๋˜์–ด์•ผํ•˜๋Š” dict์„ ์„ ์–ธํ•ด์ค€๋‹คmapping = { 'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000, 'IV':4, 'IX':9, 'XL':40, 'XC':90, 'CD':400, 'CM':900 } input๋˜๋Š” Roman์„ ํ•˜๋‚˜์”ฉ ์ชผ๊ฐœ์ฃผ๊ณ  ์ˆœ์„œ๋Œ€๋กœ Interger๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š”๋ฐ,๊ทธ ๋ฐ”๋กœ ์˜†์— ์žˆ๋Š” Roman๊ณผ ํ•จ๊ป˜ ํ™•์ธํ•˜๋„๋ก ํ•ด์ค€๋‹ค.n.. 2024. 7. 12.