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가지 풀이 중 참고하여 도움이 되셨으면 좋겠습니다!
🤗파이팅입니다~ 여러분!!🤗
'백준 알고리즘' 카테고리의 다른 글
백준 - 18870번 죄표 합축 python 문제풀이 [Hellfer] (2) | 2023.12.03 |
---|---|
백준 - 11723번 집합 python 문제풀이 [Hellfer] (2) | 2023.12.02 |
백준 - 1157번 단어 공부 python 문제풀이 [Hellfer] (0) | 2023.12.02 |
백준 - 2630번 색종이 만들기 python 문제풀이 [Hellfer] (0) | 2023.12.01 |
백준 - 2110번 공유기 설치 python 문제풀이 [Hellfer] (0) | 2023.11.30 |
백준 - 2512번 예산 python 문제풀이 [Hellfer] (0) | 2023.11.29 |
백준 - 10816번 숫자 카드 2 python 문제풀이 [Hellfer] (2) | 2023.11.28 |
백준 - 1920번 수 찾기 python 문제풀이 [Hellfer] (0) | 2023.11.28 |