단어의 개수(1152번)

PearLine_Zero·2024년 3월 14일

하루에 1커밋 CodingTest

목록 보기
48/110
post-thumbnail
  • 티어 : Bronze 2
  • 정답여부 : 오답
  • 알고리즘 유형 : 구현, 문자열
  • 시간 제한 : 2초

💡문제

영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다.

💡입력

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

💡출력

첫째 줄에 단어의 개수를 출력한다.

💡예제 입력 1

The Curious Case of Benjamin Button

💡예제 출력 1

6

💡예제 입력 2

The first character is a blank

💡예제 출력 2

6

💡예제 입력 3

The last character is a blank 

💡예제 출력 3

6

💡문제요약

공백을 기준으로 단어를 세면 되는 문제

💡알고리즘 설계

  1. 단어를 입력받음
  2. count 변수를 만들어줌
  3. word에 하나씩 꺼내서 공백이다
  4. count+1 추가
  5. count를 출력

💡작성코드

  • python
word = input()
count = 0
for i in word:
    if i != " ":
      count += 1
print(count)   

💡틀린 이유 or 수정할 부분

첫번째 단어에 공백이 있으면 count ++ 를 안 하면 되지 않을까? 했지만 바보같은 생각이다... 초반 코드를 이렇게 잡아보니 단어를 하나씩 읽는거 ;;; 예를 들어서 abc efg 2개를 읽어야 하는데 a , b ,c, e, f, 이렇게 6개를 읽음…

💡틀린 부분 수정 or 다른풀이

  • python
word = input()
word_list = word.split() #split를 통해 공백으로 기준을 분리
count = len(word_list)
print(count)  

💡느낀점 or 기억할 정보

그래서 split를 사용하여 단어의 공백으로 분리하여 구함 예를 들어 Hello word를 작성하면 Hello와 word를 따로 분리 그 다음 len() 함수를 이용하여 단어의 개수를 구함

profile
https://baesaa0304.tistory.com 블로그 이사합니다~

0개의 댓글