[PYTHON] 1152 단어의 개수 - split 정리

    https://www.acmicpc.net/problem/1152

     

    1152번: 단어의 개수

    첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열

    www.acmicpc.net

    문제 풀이

    • split()으로 공백을 기준으로 문자열을 나누고(list형태로 반환) 리스트의 길이를 출력함.

    solution

    import sys
    
    data = sys.stdin.readline().strip().split() # ['The', 'Curious', 'Case', 'of', 'Benjamin', 'Button'] 
    print(len(data)) # 6

    새롭게 배운점

    • 알고리즘 문제를 풀다보면 많이 접하는 split에 대해 정리했습니다.

    str.split(sep = None, maxsplit = -1)

    • 구분자를 이용하여 문자열을 나눠 리스트로 반환함
    • sep = None
      • 구분자(sep)의 기본값은 공백임.
      • 이용하고자 하는 구분자를 넣으면 됨.
    • maxsplit
      • maxsplit는 분리할 단어의 개수를 의미
      • maxsplit = -1이 기본값, -1이면 제한이 없음
    print('a&b&c&b'.split('&')) # ['a', 'b', 'c', 'b']
    
    print('a b c b'.split()) # ['a', 'b', 'c', 'b']
    print('a b c b'.split(' ',1)) # ['a', 'b c b']
    print('a b c b'.split(' ',2)) # ['a', 'b', 'c b']
    print('a b c b'.split(' ',3)) # ['a', 'b', 'c', 'b']
    print('a b c b'.split(' ',-1)) # ['a', 'b', 'c', 'b'] 

    댓글