본문 바로가기
> 알고리즘 문제 풀이/프로그래머스

lv1-이상한 문자 만들기 (python, 파이썬)

by bky373 2020. 10. 21.

-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)의 시간 복잡도로 해결!

댓글