DashInsert 함수
DashInsert 함수는 숫자로 구성된 문자열을 입력받은 뒤 문자열 안에서 홀수가 연속되면 두 수 사이에 - 를 추가하고, 짝수가 연속되면 * 를 추가하는 기능을 갖고 있다. DashInsert 함수를 완성하시오.
입력 예시: 4546793
출력 예시: 454*67-9-3
def DashInsert(data):
numbers = list(map(int, data)) # 숫자 문자열을 숫자 리스트로 변경
result = []
for i, num in enumerate(numbers):
result.append(str(num))
if i < len(numbers)-1: # 다음 수가 있다면
is_odd = num % 2 == 1 # 현재 수가 홀수
is_next_odd = numbers[i+1] % 2 == 1 # 다음 수가 홀수
if is_odd and is_next_odd: # 연속 홀수
result.append("-")
elif not is_odd and not is_next_odd: # 연속 짝수
result.append("*")
print("".join(result)) # 리스트를 문자열로
map(function, iterable data) : 입력받은 iterable data의 각 요소에 함수 f를 적용한 결과를 묶어서 돌려준다.
enumerate(순서가 있는 자료형) : 리스트, 튜플, 문자열 등 순서가 있는 자료형을 입력으로 받아 인덱스 값을 포함하는 enumerate 객체를 돌려준다.
원본 문자열 사이사이에 '*', '-' 를 넣는 방법보다 빈 리스트를 새로 생성해서, 채워나가는 방법이 더 간단하다.
'공부기록 > Python' 카테고리의 다른 글
[Python] yield 이용해 Progress bar 만들기 (0) | 2020.05.25 |
---|---|
파이썬 정규표현식 이용해 문장부호 지우기 (2) | 2020.05.21 |
jupyter notebook 코드 티스토리에 업로드하기 (0) | 2020.05.20 |
점프투파이썬 종합문제 Q16 모스부호 해독 Morse code decoder (0) | 2020.05.15 |