📌 LeetCode [242]: Valid Anagram🔗 문제 링크문제 설명 📄주어진 두 문자열 s와 t가 주어질 때, t가 s의 애너그램(anagram)인지 확인하는 문제입니다.애너그램이란, 단어 또는 문장을 구성하는 문자의 순서만 다르고 동일한 문자들로 구성된 다른 단어를 의미합니다.문제 접근 방식 📋문자열 s와 t가 같은 문자들을 같은 빈도로 포함하고 있는지 확인하면 됩니다. 이를 위해 문자 빈도수를 세는 방법을 생각했습니다. Python의 collections.Counter를 사용하면 각 문자의 빈도수를 쉽게 구할 수 있기 때문에, 두 문자열의 빈도수를 비교하는 방식으로 접근했습니다.아이디어 설명 💡collections.Counter를 사용하여 문자열 s와 t의 문자 빈도수를 계산합니다..
알고리즘
📌 LeetCode [347]: Top K Frequent Elements🔗 문제 링크문제 설명 📄주어진 정수 배열 nums와 정수 k가 주어질 때, 가장 빈도수가 높은 k개의 요소를 반환하는 문제입니다. 반환된 요소는 어떤 순서로든 상관없습니다.문제 접근 방식 📋먼저, 정수 배열에서 각 숫자의 빈도수를 세는 것이 문제 해결의 핵심이라고 생각했습니다. 이를 위해 딕셔너리를 사용하여 각 숫자의 빈도수를 저장한 후, 빈도수를 기준으로 내림차순 정렬하여 상위 k개의 요소를 추출하는 방식으로 접근했습니다.아이디어 설명 💡딕셔너리(pattern)를 사용하여 각 숫자의 빈도수를 계산합니다.pattern.items()를 빈도수 기준으로 내림차순 정렬하여 sortedItems 리스트를 만듭니다.상위 k개의 요..
📌 LeetCode [191]: Number of 1 Bits🔗 문제 링크문제 설명 📄주어진 양의 정수 n의 2진수 표현에서 1의 개수를 세는 문제입니다.문제 접근 방식 📋처음에는 n을 2로 나누면서 나머지가 1일 때마다 카운트를 증가시키는 방식으로 접근했습니다.아이디어 설명 💡각 비트를 하나씩 확인하기 위해 n % 2를 사용했습니다.n을 2로 나누는 방식으로 오른쪽으로 비트 시프트하며 1의 개수를 세어 나갔습니다.Solution 💻class Solution: def hammingWeight(self, n: int) -> int: answer = 0 while n > 0: if n % 2 == 1: answer +=..
📌 LeetCode [1701]: Average Wating Time🔗 문제링크문제 설명 📄문제 접근 방식 📋도착 시간이 정렬되어 있다고 문제에서 설명되어 있으니 단순히 반복문을 돌며 각각 대기시간을 구하면 된다고 생각하고 접근했습니다.아이디어 설명 💡고객이 도착했을 때, 만약 이전 작업이 끝난 시간이 고객의 도착 시간보다 크면 추가 대기 시간이 발생합니다.그렇기 때문에 만약 excuteTime(작업이 실제 끝난 시간)이 도착 시간보다 크다면 watingTime을 0에서 계산한 시간으로 변경한후totalWaitTime에 합치고 excuteTime은 도착시간+작업시간+기다린 시간을 더해서 갱신해주고 마지막에 customers 의 수로 나누어반환합니다.Solution 💻class Solution:..