728x90

LeetCode-14

Longest Common Prefix : Write a function to find the longest common prefix string amongst an array of strings.
note : If there is no common prefix, return an empty string "".

Answer

        :::python

class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: if len(strs)==1: return strs[0] answer = '' i = 0 min_p = min([len(s) for s in strs]) if min_p==0: return "" while i < min_p: if len(set([s[i] for s in strs]))==1: answer+=strs[0][i] else: break i+=1 return answer

Result : 24ms Memory: 14mb

Longest Common Prefix (์ตœ์žฅ ๊ณตํ†ต ์ ‘๋‘์‚ฌ)

Longest Common Prefix(์ตœ์žฅ ๊ณตํ†ต ์ ‘๋‘์‚ฌ)๋Š” ๋ฌธ์ž์—ด ์ง‘ํ•ฉ์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฐ€์žฅ ๊ธด ์ ‘๋‘์‚ฌ๋ฅผ ์ฐพ๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

์˜ˆ์‹œ

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ž์—ด ์ง‘ํ•ฉ์ด ์žˆ์„ ๋•Œ,

["abcdefg", "abcefg", "abcef"]

๊ณตํ†ต์œผ๋กœ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฐ€์žฅ ๊ธด ์ ‘๋‘์‚ฌ๋Š” "abc"์ž…๋‹ˆ๋‹ค.

์•Œ๊ณ ๋ฆฌ์ฆ˜

Longest Common Prefix๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฌธ์ž์—ด ์ง‘ํ•ฉ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์—ด์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด๋“ค๊ณผ ๋น„๊ตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฌธ์ž์—ด์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ ๋น„๊ตํ•˜๋ฉด์„œ ๊ณตํ†ต๋œ ๋ถ€๋ถ„์„ ์ฐพ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ์˜ ๋ฌธ์ž์—ด ์ง‘ํ•ฉ์—์„œ๋Š” "abcdefg"๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค.

a b c d e f g
- - - - - - -
a b c e f g
a b c e f

์œ„์™€ ๊ฐ™์ด ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์—ด๊ณผ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•ด๊ฐ€๋ฉด์„œ ๋ชจ๋“  ๋ฌธ์ž์—ด์— ๋Œ€ํ•ด ๊ณตํ†ต๋œ ์ ‘๋‘์‚ฌ๋ฅผ ์ฐพ์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

์‹œ๊ฐ„ ๋ณต์žก๋„

Longest Common Prefix ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋Š” O(S * N)์ž…๋‹ˆ๋‹ค. (S: ๋ฌธ์ž์—ด์˜ ํ‰๊ท  ๊ธธ์ด, N: ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜)

๋ฐ˜์‘ํ˜•

'๐Ÿข One step' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[leetcode-347] Top K Frequent Elements  (0) 2023.04.27
[leetcode-43] Multiply Strings  (0) 2023.04.26
[leetcode-12] Integer to Roman  (0) 2023.04.21
[leetcode-10] Regular Expression Matching  (0) 2023.04.20
[leetcode-8] String to Integer (atoi)  (0) 2023.04.19
๋‹คํ–ˆ๋‹ค