> 알고리즘 문제 풀이/프로그래머스
lv1-이상한 문자 만들기 (python, 파이썬)
bky373
2020. 10. 21. 23:15
-1번: 나의 풀이
def solution(s):
ans = ''
ck = False
for x in range(len(s)):
if s[x] == ' ':
ans += ' '
ck = True
k = x + 1
else:
if ck:
if (x-k) % 2:
ans += s[x].lower()
continue
else:
if x % 2:
ans += s[x].lower()
continue
ans += s[x].upper()
return ans
- 2번: 1번 성공 후 참고한 풀이
def solution2(s):
return ' '.join([''.join([c.upper() if i % 2 == 0 else c.lower() for i, c in enumerate(w)]) for w in s.split(' ')])
- 3번: 확인!
- 문제 꼼꼼히 읽기! (처음에 실패가 떠서 왜지? 했는데, 소문자->대문자 부분을 놓쳤다)
- 만족한 부분: O(n^2)가 아니라 O(n)의 시간 복잡도로 해결!