반응형
https://leetcode.com/problems/delete-characters-to-make-fancy-string/description/
간단 구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
fancyStr, index i를 선언 후 적절히 초기화해줍니다.
📔 풀이과정
pythond의 for loop의 range로 index를 돌때 for loop내 index값을 바꿔도 반영되지 않습니다.
📑 예시
for i in range(5):
print(f"i before change: {i}")
i += 2
print(f"i after change: {i}")
i before change: 0
i after change: 2
i before change: 1
i after change: 3
i before change: 2
i after change: 4
i before change: 3
i after change: 5
i before change: 4
i after change: 6
따라서 while loop를 수행해야하며 수행하면서 다음을 진행합니다.
1. 지역변수 cnt(연속된 빈도 수)를 선언 후 1로 초기화합니다.
2. 인접한 문자가 같은 동안 while loop를 수행하며 i를 증가시켜줍니다. 두 번을 초과해 연속되면 안되므로 2미만인 경우에만 cnt를 1씩 증가시켜줍니다.
3. 반복된 cnt개수만큼 현재 문자 s[i]를 곱해 fancyStr 뒤에 붙여줍니다.
4. i를 증가시켜줍니다.
📔 정답 출력 | 반환
fancyStr를 반환합니다.
📕 Code
📔 Python3
class Solution:
def makeFancyString(self, s: str) -> str:
fancyStr = ""
i = 0
while i < len(s):
cnt = 1
while i+1 < len(s) and s[i] == s[i+1]:
i += 1
if cnt < 2:
cnt += 1
fancyStr += s[i] * cnt
i+=1
return fancyStr
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Implementation' 카테고리의 다른 글
(Python3) - 프로그래머스(코딩 기초 트레이닝) : 문자열 출력하기 (0) | 2024.10.04 |
---|---|
(Python3) - 프로그래머스(PCCP_기출문제) : 2번 각도 합치기 (0) | 2024.10.04 |
(Python3) - LeetCode (easy) 1952. Three Divisors (0) | 2024.09.30 |
(Python3) - LeetCode (easy) 1941. Check if All Characters Have Equal Number of Occurrences (0) | 2024.09.27 |
(Python3) - LeetCode (easy) 1941. Check if All Characters Have Equal Number of Occurrences (2) | 2024.09.26 |