본문 바로가기

Algorithm/String

(138)
(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 (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 (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) : 2337. Move Pieces to Obtain a String https://leetcode.com/problems/move-pieces-to-obtain-a-string문자열을 다뤄본 문제였습니다.📕 풀이방법📔 입력 및 초기화_는 이동할 수 있는 공간 즉, 비어 있으므로 고려할 필요 없습니다. 만들어야되는 'L', 'R'의 index를 함께 배열 start_idx_char, target_idx_char를 선언해 저장합니다.📔 풀이과정1. start_idx_char과 target_idx_char의 길이가 다르다면 이동해서 target을 만들 수 없으므로 False를 반환합니다. 2. 빈 공간을 제거했는데 start의 'L', 'R'배치와 target의 'L', 'R'배치의 순서가 다르다면 만들 수 없으므로 False를 반환합니다. 3. 같은 길이와 순서를 가진..
(Python3) - 프로그래머스(코딩테스트 입문) : 잘라서 배열로 저장하기 https://school.programmers.co.kr/learn/courses/30/lessons/120913 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krslicing 문제였습니다.📕 풀이방법📔 입력 및 초기화정답변수 answer선언 후 빈 배열로 초기화합니다.📔 풀이과정my_str에 대해 loop를 수행하며 n씩 잘라 answer에 추가합니다.📔 정답 출력 | 반환answer를 반환합니다.📕 Code📔 Python3def solution(my_str, n): answer = [] for i in range(0, len(my_str), n): answer.ap..
(Python3) - 프로그래머스(코딩테스트 입문) : A로 B 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/120886 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krhash map을 사용해본 문제였습니다.📕 풀이방법📔 입력 및 초기화1. hash map before_dict를 선언해 줍니다. 2. before의 문자를 순회하며 문자, 빈도 수를 각각 key, value로 before_dict에 저장해줍니다.📔 풀이과정after의 원소를 순회하며 다음을 진행합니다.1, before_dict에 해당 문자가 있다면 빈도수를 1빼줍니다. before에서 after의 문자가 1개씩 날아간다고 생각하면 됩니다...
(Python3) - 프로그래머스(코딩테스트 입문) : OX퀴즈 https://school.programmers.co.kr/learn/courses/30/lessons/120907 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krsplit과 문자열을 다뤄본 문제였습니다.📕 풀이방법📔 입력 및 초기화정답 변수 answer 선언 후 빈 배열로 초기화합니다.📔 풀이과정quiz에 대해 loop를 수행하며 다음을 진행합니다.1. 수식을 공백으로 구분해 split한 list를 변수 splited를 선언해 저장합니다. 2. left_hand_side는 splited의 0번째, 연산자 operator는 1번째, right_hand_side는 2번째, 수식의 실제 값 actual..
(Python3) - 프로그래머스(코딩테스트 입문) : 문자열 정렬하기 (2) https://school.programmers.co.kr/learn/courses/30/lessons/120911 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문자열을 다뤄본 문제였습니다.📕 풀이방법📔 입력 및 초기화my_list를 선언 후 my_string을 list로 변환해 저장합니다.📔 풀이과정1. my_list의 원소를 순회하면서 각 문자를 소문자로 변환합니다. 2. 해당 원소를 오름차순으로 정렬합니다. 즉, 사전순으로 정렬합니다.📔 정답 출력 | 반환my_list를 빈 문자열에 대해 join한 결과를 반환합니다.📕 Code📔 Python3def solution(my_string):..