320x100

[ 15회 EPPER ] 5번 문자열 압축
문제
0과 1로만 이루어진 비트열에서 같은 비트가 연속해서 등장하는 횟수들을 줄일 수 있다.
예를 들어, 첫문자가 0으로 시작하는 경우, CDA라고 표기하여 저장공간을 줄일 수 있는데, C는 0이 3개연속으로, D는 1이 4개, A는 0이 1개가 연속으로 등장했다는 의미이다.
제한사항
- 입력으로 주어지는 문자열의 길이는 1 이상 10,000 이하
- 문자열에는 0과 1이외의 문자는 등장하지 않음
- 동일한 문자가 26회이상 연달아 등장할때는 'Z'로, 동일한 문자는 27회 이상 연달아 등장하지 않음
- 비트열이 1로 시작하는 경우에는 저장 공간의 제일 앞에 1을 붙여서 혼돈 방지 ex) '110100'의 경우 '1BAAB'로 출력
입출력 예
#1
-입력: "00011110"
-출력:"CDA"
#2
-입력: "111100100011"
-출력:"1DBACB"
솔루션
def solution(input):
num = len(input)
alphabet='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
ans=[]
count=0
if input[0]=='1':
ans.append('1')
for i in range(1,num):
if (input[i] != input[i-1]):
ans.append(alphabet[count])
count=0
else:
count=count+1
ans.append(alphabet[count])
return ans
user_input = input()
user_input = str(user_input)
answer = solution(user_input)
print("".join(answer))
- list에 append로 값 넣어줌
- 리스트를 문자열로 바꾸어 출력할때 "구분자".join(리스트)를 사용
문제 출처 : level.goorm.io/exam/100821/15%ED%9A%8C-epper-%EB%AC%B8%EC%9E%90%EC%97%B4-%EC%95%95%EC%B6%95/quiz/1
구름LEVEL
코딩테스트에서 가장 높은 비중을 차지하는 알고리즘 문제를 제작하고 풀이할 수 있는 온라인 저지 서비스입니다. 기업에서 선호하는 C, C++, 파이썬(Python), 자바(Java), 자바스크립트(Javascript) 이
level.goorm.io
300x250
반응형
'알고리즘' 카테고리의 다른 글
| [Python]100 만들기(E-PPER 15회 4번 파이썬) (0) | 2021.03.19 |
|---|---|
| [Python]재고없는 날(E-PPER 15회 3번) (0) | 2021.03.18 |
댓글