Hi, There!
안녕하세요, 바오밥입니다.
목차
- 문제
- 풀이
문제
문제 내용
알파벳 소문자와 대문자로 구성된 문자열을 압축하려 합니다.
압축이란 대표 문자와 대표 문자가 연속되는 개수를 함께 표현하는 것입니다.
이때, 대문자와 소문자는 구분하지 않으며, 대표 문자는 소문자로 표현합니다.
예를 들어, 문자열 "YYYYYbbbBbbBBBMmmM"을 압축하면 "y5b9m4"입니다.
문자열 s가 매개변수로 주어질 때, s를 압축한 문자열을 return 하도록 solution 함수를 작성했습니다.
그러나, 일부 코드가 잘못되어 코드가 바르게 동작하지 않습니다.
주어진 코드가 모든 입력을 바르게 처리하도록 코드를 수정해주세요.
코드는 _한 줄_만 수정해야 합니다.
매개변수 설명
문자열 s가 solution 함수의 매개변수로 주어집니다.
- s의 길이는 1 이상 100000 이하입니다.
- s는 알파벳 소문자, 대문자로만 구성됩니다.
- 알파벳이 반복되는 횟수는 9회 이하로만 주어집니다.
- 즉, “sssSSSSsss” 와 같은 경우는 주어지지 않습니다.
return 값 설명
s를 압축한 결과를 return 해주세요.
예시
예시 설명
예시 #1
문제의 예와 같습니다.
풀이
풀이 코드 및 해설
def solution(s):
s = s.lower() # 전달받은 문자열을 모두 소문자로 변경
answer = ""
previous = s[0] # 첫 글자를 previous로 저장
counter = 1
for alphabet in s[1:]: # 첫 글자를 제외한 문자열 리스트 전체 순회
if alphabet == previous: # 순회한 글자와 첫 글자가 동일하면
counter += 1 # counter 1 누적
else: # 만약 달라지면
answer += previous + str(counter) # 문자열로 합침 예시) y5
counter = 1 # counter 1로 초기화
previous = alphabet # 다음 글자를 count하기 위해 previous를 초기화
answer += previous + str(counter) # for문이 끝나면 여태까지 누적된 모든 값 저장
return answer
'Certificate > Cert - Cos Pro 1급' 카테고리의 다른 글
[Cos Pro 1급] 기출문제 4회차, 마방진 문제 (0) | 2021.07.16 |
---|---|
[Cos Pro 1급] 기출문제 4회차, 스키장 최소 비용 구하기 (0) | 2021.07.16 |
[Cos Pro 1급] 기출문제 4회차, 사전에서 단어찾기 (0) | 2021.07.16 |
[Cos Pro 1급] 기출문제 3회차, 밥 먹고 머리 자르고 (0) | 2021.07.15 |
[Cos Pro 1급] 기출문제 3회차, 팝업 스토어를 열 최적의 날짜 (0) | 2021.07.15 |