본문 바로가기
백준 알고리즘

백준 - 1152번 단어의 개수 python 문제풀이 [Hellfer]

by Hellfer 2023. 12. 1.
728x90

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

 

1152번: 단어의 개수

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

www.acmicpc.net

🔷 알고리즘 분류 - 구현, 문자열   난이도 - 브론즈 2

🔶문제 풀이 - str.split() 함수를 이용한 풀이

 

split() 함수를 사용하여 문장을 공백을 기준으로 나눕니다. 

 

split() 함수는 나눈 결과를 리스트로 반환하므로, len() 함수를 사용하여 리스트의 길이(즉, 단어의 개수)를 구할 수 있습니다.

 

#문장을 입력받습니다
x = input()
#문장을 공백을 기준으로 나눕니다.
words = x.split()
#단어의 개수를 출력합니다.
print(len(words))

🔶다른 문제 풀이 - 문자열을 이용한 풀이

# 사용자로부터 문장을 입력받고, 양쪽 끝의 공백을 제거합니다.
x = input().strip()

# 입력받은 문장이 공백만으로 이루어진 경우
if x == '':
    # 단어가 없으므로 0을 출력합니다.
    print(0)
    
# 입력받은 문장에 단어가 있는 경우
else:
    # 단어의 개수를 세기 위한 변수를 1로 초기화합니다.
    count = 1
    # 문장을 순회하며 공백의 개수를 세어 단어의 개수를 구합니다.
    for i in x:
        # 문자가 공백인 경우
        if i == ' ':
            # 단어의 개수를 1 증가시킵니다.
            count += 1
    # 단어의 개수를 출력합니다.
    print(count)

🔶 문제 이해하기

문제 속 입력값을 예시로 들어보겠습니다.

 

# 문장을 입력받습니다.
x = "The Curious Case of Benjamin Button"

# 문장을 공백을 기준으로 나눕니다.
words = x.split()

# 단어의 개수를 출력합니다.
print(len(words))

 

split() 함수는 입력받은 문장을 공백을 기준으로 나눠 ["The", "Curious", "Case", "of", "Benjamin", "Button"]

리스트를 생성합니다.

 

이 리스트의 길이를 len() 함수를 통해 구하면, 6이라는 결과를 얻을 수 있습니다.

 

# 문장을 입력받습니다.
x = " The first character is a blank"

# 문장을 공백을 기준으로 나눕니다.
words = x.split()

# 단어의 개수를 출력합니다.
print(len(words))

 

split() 함수는 입력받은 문장을 공백을 기준으로 나눠 ["The", "first", "character", "is", "a", "blank"]

리스트를 생성합니다.

 

이 리스트의 길이를 len() 함수를 통해 구하면, 6이라는 결과를 얻을 수 있습니다.

 

# 입력받은 문장이 공백만으로 이루어진 경우
if x == '':
    # 단어가 없으므로 0을 출력합니다.
    print(0)
    
# 입력받은 문장에 단어가 있는 경우
else:
    # 단어의 개수를 세기 위한 변수를 1로 초기화합니다.
    count = 1
    # 문장을 순회하며 공백의 개수를 세어 단어의 개수를 구합니다.
    for i in x:
        # 문자가 공백인 경우
        if i == ' ':
            # 단어의 개수를 1 증가시킵니다.
            count += 1

 

예시를 들어보겠습니다.

 

 x == " The first character is a blank"

 

strip() 함수를 통해 문장 양쪽의 공백이 제거되며, 이후에 문장을 순회하면서 공백의 개수를 세는 과정을 거치게 됩니다. 

 

이 경우 "The", "first", "character", "is", "a", "blank" 총 6개의 단어가 있으므로, 공백은 총 5개입니다.

 

count 변수는 1부터 시작하므로, 5개의 공백이 발견될 때마다 1씩 증가시키면, 최종적으로 단어의 개수인 6이 출력됩니다.

 

위 2가지 풀이 중 참고하여 도움이 되셨으면 좋겠습니다!

 

🤗파이팅입니다~ 여러분!!🤗

 

 

 

 

728x90