2021/08

정확성과 효율성 테스트를 모두 통과해야 합니다. 정확성 테스트는 쉽게 통과할 수 있지만 효율성은 끝내 통과하지 못하고 다른 코드들을 참조했습니다. 결론적으로 Trie 자료 구조에 대해서 알고 있어야 수월하게 풀이가 가능한 문제입니다. Trie 자료 구조에 대해선 따로 정리하도록 하겠습니다. 아래 코드는 유튜브 풀이를 참조한 코드 입니다. 설명을 차근차근 해주셔서 참조하시면 많은 도움이 될 듯 합니다. class Trie: def __init__(self): self.node = dict() self.count = 0 def insert(self, char): curr = self for s in char: curr.count += 1 if s not in curr.node: curr.node[s] = T..
올바른 괄호 / 균형잡힌 괄호 2가지를 체크하는 함수를 각각 구현한 뒤 문제에서 설명하는 변환 과정 1 ~ 4를 구현 하면 됩니다. 이때 재귀 부분만 신경쓰면 큰 어려움은 없을 듯 합니다. def isbalanced(s): flag = 0 for c in s: if c == '(': flag += 1 elif c == ')': flag -= 1 if flag == 0: return True else: return False def iscorrect(s): stack = [] for c in s: if len(stack) == 0: stack.append(c) else: if c == '(': stack.append(c) elif c == ')': if len(stack) == 0 or stack.pop(..
그냥 무식하게 1개 단위 ~ n-1개 단위 압축 경우의 수를 모두 계산하고 그 중 가장 작은 값은 반환하는 방법으로 해결했습니다. 좀 더 깔끔하게 해결한 코드가 있으면 정리해서 업데이트 하겠습니다.. import math def solution(s): if len(s) == 1: return 1 elif len(set([c for c in s])) == 1: count = len(s) return len(str(count)) + 1 else: answer = len(s) for i in range(1, len(s)): idx = i length = 0 prev = s[:i] count = 1 for j in range(math.ceil(len(s) / i) - 1): curr = s[idx:idx+i] ..
sssssein
'2021/08 글 목록