파이썬 대소문자 글자 붙이기,띄어쓰기 질문드립니다.

조회수 780회

파이썬 독학하다가 떠올라서 질문드립니다.
다음과 같이 영어이름을 띄어쓰기 없이 입력받았을 때
RyuHyunJin
다음과 같이
[Ryu,Hyun,Jin]으로 출력하려고 합니다.
if문 이용해서 소문자가 왔을 때는 왼쪽 글자와 붙이고, 대문자는 왼쪽을 띄면 될 거 같은데 대소문자 관련 함수 예를 찾기 힘들어 헤매고 있네요. 도움부탁드립니다

2 답변

  • 맥빠지는 답: 정규표현식을 쓰시면 한큐에 끝나는 얘기입니다.

    import re
    
    # 한 번 대문자가 나온 다음 대문자가 아닌 게 1개 이상 나올 때 매칭됨
    regex = r"[A-Z][^A-Z]+"
    
    test_strs = ("RyuHyunJin", "Gwang-hyunKim")
    
    for s in test_strs :
        print(' '.join(re.findall(regex, s)))
    

    좀더 성의있는 답:

    물론 if로 분기해서 "이 글자가 대문자냐 아니냐?"를 따지는 부분도 중요합니다. (참고로 ord()라는 함수가 있습니다.)
    그런데 그보다 중요한 핵심 아이디어는, 주어진 문자열을 글자 단위로 순회해야 한다는 겁니다.

    파이썬에서는 이런 게 됩니다.

    for letter in "RyuHyunJin" :
        print(letter) # 뭐가 출력될지 상상한 다음 실행해 보세요.
    

    여기서부터는 직접 시도해 보세요.

  • 아주아주 쉽게 만들어 보면...

    대문자 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    
    입력 = "HyunJinRyu"
    
    출력 = ""
    
    for 글자 in 입력:
        if 글자 in 대문자:
            출력 += " "
        출력 += 글자    
    
    print(출력)
    

    응용해서 더 잘 만들어 보세요.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)