전체 글 (2344) 썸네일형 리스트형 (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) .. (Python3) - LeetCode (Easy) : 1408. String Matching in an Array https://leetcode.com/problems/string-matching-in-an-array전수조사 문제였습니다.📕 풀이방법📔 입력 및 초기화1. words의 길이를 length에 저장합니다. 2. 정답변수 answer를 선언 후 저장합니다.📔 풀이과정words의 길이에 대해 이중 for loop를 수행하며 다음을 진행합니다.1. 같은 index를 건너뛰고 i번째 단어가 j번쨰 단어의 일부라면 answer에 i번째 문자를 저장합니다.📔 정답 출력 | 반환answer를 list로 변환한 결과를 반환합니다.📕 Code📔 Python3class Solution: def stringMatching(self, words: List[str]) -> List[str]: len.. (Python3) - LeetCode (Medium) : 1769. Minimum Number of Operations to Move All Balls to Each Box.py https://leetcode.com/problems/minimum-number-of-operations-to-move-all-balls-to-each-box전수조사 문제였습니다.📕 풀이방법📔 입력 및 초기화정답 배열 answer을 선언 후 빈 배열로 초기화합니다.📔 풀이과정i번째 box로 옮기기 위해 j번째 box에 대해 for loop를 수행하며 다음을 진행합니다. 1. 필요 연산 수 op를 선언 후 0으로 초기화합니다. 2. j번째 box가 1이라면 이를 i번째로 옮기기 위해 abs(i-j)만큼의 연산이 필요하므로 op에 해당 값들을 누적합니다. 3. answer에 i번째로 옮길 때의 최소 연산 수 op를 append해줍니다.📔 정답 출력 | 반환answer를 반환합니다.📕 Code📔.. (Python3) - LeetCode (Medium) : 2381. Shifting Letters II https://leetcode.com/problems/shifting-letters-iidifference array를 사용해본 문제였습니다.📕 풀이방법📔 입력 및 초기화s의 길이 length, 변화량을 저장할 배열 diff, 변화량의 누적값 배열 diff_sums를 선언 후 적절히 초기화합니다.📔 풀이과정단순히 매 shift연산에 대해 for loop를 수행하며 문자를 바꾸게 되면 5만*2로 시간초과를 받게 됩니다. 따라서 O(n)의 연산을 적용하기 위해 변화량을 기록해 누적합을 사용해야 됩니다.1. shifts를 순회하며 현재 shift에 대해 시작 인덱스와 끝 인덱스를 방향에 따라 전처리 해줍니다. 시작인덱스 ~ 끝 인덱스까지 해당 방향이 기록되므로 끝 인덱스 + 1부터는 누적량을 고려해 .. (Python3) - LeetCode (Medium) : 1930. Unique Length-3 Palindromic Subsequences https://leetcode.com/problems/unique-length-3-palindromic-subsequences아이디어로 해결해야하는 문자열 문제였습니다.📕 풀이방법📔 입력 및 초기화1. s에 사용된 고유한 알파뱃들을 저장할 set letters를 선언후 s에 사용된 고유 문자들을 저장합니다. 2. 정답변수 ans를 선언 후 0으로 초기화합니다.📔 풀이과정다음 palindrome은 모두 'ata'라는 문자열 한개에 대한 부분 문자열입니다.a__t__aa_ta____a__t_apalindrome은 어떻게 만들어질까요? 고유한 문자의 왼쪽과 오른쪽 index를 찾고 그 사이 아무문자를 사용해 길이 총 3개의 문자열을 만든다면 palindrome이 됩니다. palindrome을 찾기 위해.. (Python3) - LeetCode (Medium) : 2270. Number of Ways to Split Array https://leetcode.com/problems/number-of-ways-to-split-arrayprefix sum 문제였습니다.📕 풀이방법📔 입력 및 초기화1. length 선언 후 nums의 길이를 저장합니다.2. 누적합을 저장할 배열 sums를 선언 후 length만큼 0으로 초기화합니다. 3. valid_splits를 선언 후 0으로 초기화합니다. 4. sums의 누적합을 구해 갱신해줍니다.📔 풀이과정0에서 length - 2까지 for loop를 수행하며 split된 left_sum, right_sum을 구해줍니다. 0부터 i까지의 합이 sum[i], i+1부터 끝까지의 누적합은 sum[length-1] - sum[i]가 되므로 O(n)만에 valid 한 splits인지 구할 수 .. (Python3) - LeetCode (Medium) : 2559. Count Vowel Strings in Ranges https://leetcode.com/problems/count-vowel-strings-in-rangesprefix sum(누적합) 문제였습니다.📕 풀이방법📔 입력 및 초기화정답 배열 ans, 각 단어별 vowel str이 모음인지 여부를 저장할 배열 is_word_vowel을 선언 후 빈 배열로 초기화합니다.📔 풀이과정1. 각 단어의 처음과 끝이 모음인지 여부를 반환하는 함수 is_vowel_str을 선언 후 각 단어별로 호출해 결과를 is_word_vowel에 append해줍니다. 2. 누적합 vowel_str_sum을 선언 후 word의 길이만큼 순회하며 i번째 index까지의 vowel str개수를 구해 저장합니다. 3. queries정보를 순회하며 다음을 진행합니다. 3-1. 각 que.. (Python3) - LeetCode (Medium) : 1422. Maximum Score After Splitting a String https://leetcode.com/problems/maximum-score-after-splitting-a-string전수조사로 해결한 문제였습니다.📕 풀이방법📔 입력 및 초기화점수 score를 선언 후 0으로 초기화합니다.📔 풀이과정1. 주어진 substring과 비교할 문자 mode를 입력받아 특정문자의 개수를 반환하는 getScore를 구현합니다. 2. s에 대해 1부터 len(s)-1까지 for loop를 수행하며 left, right로 부분 문자열을 만들고 각각 getScore한 결과의 최댓값을 score에 저장합니다.📔 정답 출력 | 반환score를 반환합니다.📕 Code📔 Python3class Solution: def maxScore(self, s: str) -> i.. 이전 1 2 3 4 5 6 ··· 293 다음