반응형
문제 설명
Complete the solution so that it splits the string into pairs of two characters. If the string contains an odd number of characters then it should replace the missing second character of the final pair with an underscore ('_').
Examples:
solution('abc') # should return ['ab', 'c_']
solution('abcdef') # should return ['ab', 'cd', 'ef']
해결 방법
1. s의 문자열 수가 만약 홀수라면 뒤에 '_'를 붙인다.
2. 문자열을 두개씩 잘라서 리스트에 담는다.
def solution(s):
list = []
idx = 0
if len(s) % 2 != 0:
s = s + '_'
for _ in range(len(s) // 2):
list.append(s[idx:idx+2])
idx += 2
return list
idx 변수를 따로 만들어서 2개씩 슬라이스할 수 있도록 하였다.
def solution(s):
list = []
if len(s) % 2 != 0:
s = s + '_'
for i in range(0, len(s), 2):
list.append(s[i:i+2])
return list
range의 파라미터에 간격을 추가해서 넣으면 다음처럼 idx 변수를 줄일 수 있다.
그리고 이를 컴프리핸션으로 바꾸면 다음처럼 획기적으로 줄일 수 있다..!!
def solution(s):
return [(s + "_")[i:i + 2] for i in range(0, len(s), 2)]
이 코드의 경우 if 뿐만 아니라 변수하나 사용하지 않고 컴프리핸션만으로 풀어낸다.
반응형
'나는 이렇게 학습한다 > Algorithm & SQL' 카테고리의 다른 글
Where my anagrams at? (0) | 2022.02.19 |
---|---|
Write Number in Expanded Form (0) | 2022.02.18 |
Bit Counting (0) | 2022.02.16 |
Stop gninnipS My sdroW! (0) | 2022.02.15 |
Create Phone Number (0) | 2022.02.14 |