Algorithm (2138) 썸네일형 리스트형 (Python3) - LeetCode (Medium) : 2429. Minimize XOR https://leetcode.com/problems/minimize-xor📕 풀이방법📔 입력 및 초기화다음 변수를 선언합니다.📑 num1, num2를 이진수로 변환하는 bin_num1, bin_num2📑 target_bit_count를 선언 해 필요한 1의 개수를 세줍니다.📑 num1와 xor를 했을 때 문자열 x를 선언합니다.📑 x의 bit 수 bit_count를 선언 후 0으로 초기화합니다.📔 풀이과정1. x XOR num1에서 x가 최소가 되려면 target_bit_count만큼 있으면서 num1와 최대한 같은 자리에 '1'이 존재해야 됩니다. 따라서 target_bit_count를 넘지 않게 bin_num1을 순회하면서 x를 생성해줍니다. 2. 부족한 x를 다듬어줍니다. 2-1.. (Python3) - LeetCode (Medium) : 2657. Find the Prefix Common Array of Two Arrays https://leetcode.com/problems/find-the-prefix-common-array-of-two-arrays전수조사 문제였습니다.📕 풀이방법📔 입력 및 초기화다음 변수를 선언합니다.📑 B의 원소를 key, index를 value로 defaultdict b_map을 선언합니다. 이후 B의 원소를 순회하며 값에 맞게 저장합니다.📑 A의 길이 length를 선언 후 길이를 저장합니다.📑 정답 변수 ans를 선언 후 빈 배열로 초기화합니다.📔 풀이과정📑 2중 for loop를 수행하며 다음을 진행합니다.1. length - 1까지 for loop를 수행하며 변수 i를 iterator로 증가시키며 현재 확인하려는 index값을 제한합니다.2. 내부에 for loop를 수행해 0.. (Python3) - LeetCode (Medium) : 3223. Minimum Length of String After Operations https://leetcode.com/problems/minimum-length-of-string-after-operations문제 아이디어로 해결한 문제였습니다.📕 풀이방법📔 입력 및 초기화📑 s의 길이 length선언 후 저장합니다.📑 s의 문자별 빈도수를 저장할 Counter s_counter를 선언 후 저장합니다.📑 정답 변수 ans 선언 후 0으로 초기화합니다.📔 풀이과정📑 자기 자신을 제외한 양 옆의 같은 문자를 지울 수 있기 때문에 2를 초과하는 빈도 수의 문자들은 모두 1개 또는 2개로 줄일 수 있습니다.1. 빈도 수가 2개를 초과하는 홀수인 경우 가운데 문자의 양 옆을 짝수개로 제거할 수 있으므로 1개의 문자가 남습니다.2. 빈도 수가 2개를 추과하는 짝수인 경우 문자의 .. (Python3) - LeetCode (Medium) : 1400. Construct K Palindrome Strings https://leetcode.com/problems/check-if-a-parentheses-string-can-be-valid/solutions/6245791/check-if-a-parentheses-string-can-be-valid구현 문제였습니다.📕 풀이방법📔 입력 및 초기화다음 변수를 선언해줍니다.최소 개수(low): 가능한 최소 ( 개수최대 개수(high): 가능한 최대 ( 개수📔 풀이과정 s의 길이가 홀수라면 괄호짝이 맞지 않으므로 False를 반환합니다.왼쪽에서 오른쪽 (left-to-right) for loop로 스캔해줍니다.locked[i] == '0' 이면 s[i]를 ( 또는 )로 변경 가능합니다.low가 음수가 되면 유효하지 않은 문자열이므로 False 반환합니다.high가 .. (Python3) - LeetCode (Medium) : 1400. Construct K Palindrome Strings https://leetcode.com/problems/construct-k-palindrome-strings/descriptionpalindrome조건을 적용해본 문제였습니다.📕 풀이방법📔 입력 및 초기화홀수 빈도 수를 가진 odd_char_num를 선언 후 0으로 초기화합니다. 각 알파뱃별 빈도수를 저장할 alpha_map을 선언 후 s에 대해 for loop를 수행하며 빈도수를 저장해줍니다.📔 풀이과정1. 최소 palindrome은 하나의 문자이므로 s의 길이가 k미만이면 k개를 사용해 s를 만들 수 없으므로 False를 반환합니다. 2. palindrome의 조건은 홀수개인 문자가 1개거나 0개일 때 나머지 문자들은 모두 짝수여야 합니다. k개의 palindrome으로 s를 만들어야 하기 때.. (Python3) - LeetCode (Medium) : 916. Word Subsets https://leetcode.com/problems/word-subsets/description전수조사로 해결한 문제였습니다.📕 풀이방법📔 입력 및 초기화정답변수 ans, words2의 알파뱃의 빈도수를 저장할 hash map words2_map을 선언 후 적절히 저장합니다. words2_map에 빈도 수를 저장할 때는 각 알파뱃별 빈도수를 단순히 1씩 증가시키는 것이 아니고 각 단어별 가장 많이 나온 빈도수를 저장해야합니다. words2 가 각각 ["e", "oo"], ["eo", "lo"] 라면 {e:1, o:2}, {e:1,l:1,o:1} 형태로 알파뱃이 o인 부분에 있어 한번에 최대로 나온 값을 저장합니다.📔 풀이과정words1의 길이는 최대 1만과 각 단어의 최대길이 10을 곱해도 10만.. (Python3) - LeetCode (Easy) : 2185. Counting Words With a Given Prefix https://leetcode.com/problems/counting-words-with-a-given-prefixstartswith함수를 사용해본 문제였습니다.📕 풀이방법📔 입력 및 초기화정답 변수 ans를 선언 후 0으로 초기화합니다.📔 풀이과정words를 순회하며 각 단어에서 시작이 pref인 경우 ans를 1씩 더해줍니다.📔 정답 출력 | 반환ans를 반환합니다.📕 Code📔 Python3class Solution: def prefixCount(self, words: List[str], pref: str) -> int: ans = 0 for word in words: if word.startswith(pref): .. (Python3) - LeetCode (Easy) : 3042. Count Prefix and Suffix Pairs I https://leetcode.com/problems/count-prefix-and-suffix-pairs-i전수조사 문제였습니다.📕 풀이방법📔 입력 및 초기화단어의 길이 length, 정답 ans를 선언 후 적절히 저장합니다.📔 풀이과정이중 for loop를 수행하며 서로 다른 두 단어를 뽑아 접두어와 접미사라면 해당 쌍을 찾았으므로 ans를 1씩 추가합니다.startswith, endswith를 사용하면 간단한 구현으로 알 수 있습니다.📔 정답 출력 | 반환ans를 반환합니다.📕 Code📔 Python3class Solution: def countPrefixSuffixPairs(self, words: List[str]) -> int: length = len(words) .. 이전 1 2 3 4 5 ··· 268 다음