[mangodm-web] Week 01 Solutions #320
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
문제 풀이 현황
문제별 내용 정리
안녕하세요, 문제 풀이 내용을 간단하게 정리해보았습니다.
많은 피드백 부탁 드립니다.. 🙇♀️
문제 #252 번은 좀 더 고민해보고 싶어서 백로그로 남겨두고, 다음 PR에 같이 올려보겠습니다..!
01. Contains Duplicate
접근 방법
주어진 배열을 Set으로 변환한 후, 배열의 길이와 Set의 길이를 비교하여 중복되는 요소가 있는지를 판단하였습니다.
알고리즘 분석
주어진 배열의 길이를 n이라 할때,
02. Number of 1 Bits
접근 방법
주어진 정수(
n
)의 각 비트를 확인하여 1인 비트의 개수를 재귀적으로 세는 함수를 작성하였습니다.1의 개수는
acc
라는 변수에 누적한 뒤, 최종적으로 반환합니다.알고리즘 분석
주어진 정수를 n이라 할 때,
n
을 2로 나뉘면서 재귀적으로 호출하므로, 매 호출마다n
의 크기는 절반으로 줄어듭니다.03. Top K Frequent Elements
접근 방법
각 요소의 빈도를 계산하고, 이 빈도를 인덱스로 사용하는 일종의 버킷을 만들어 문제를 해결했습니다.
가장 많이 등장하는 k를 추출해야 하기 때문에 빈도가 높은 순서대로 버킷을 조회하여 효율성을 높였습니다.
알고리즘 분석
주어진 숫자 배열(
nums
)의 길이를 n이라 할 때,05. Palindromic Substrings
접근 방법
팰린드롬은 중심 문자를 기준으로 좌, 우가 동일한 문자열을 말합니다.
다만, 팰린드롬인지 판별할 문자열의 길이가 홀수인지, 짝수인지에 따라서 중심 문자의 기준이 달라집니다.
aba
=>b
가 중심abba
=>bb
가 중심이러한 특성을 이용하여 중심 문자를 기준으로 좌, 우로 확장해나가면서 팰린드롬의 총 개수를 파악하도록 하였습니다.
알고리즘 분석
주어진 문자열(
s
)의 길이를 n이라 할 때,countPalindrome
함수는 최악의 경우 O(n)번만큼 연산이 이뤄집니다. 이 함수는 문자열의 길이(n)만큼의 순회를 하면서 호출되기 때문에 시간 복잡도는 O(n^2)라고 할 수 있습니다.total_count
변수만 추가적으로 사용되기 때문에 공간 복잡도는 O(1)이라고 판단하였습니다.