[백준] 1152번 : 단어의 개수 (🥉브론즈 2) (Python)

2023. 1. 21. 00:37·◼ PS Note/백준
반응형

문제 바로 가기

 

1152번: 단어의 개수

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

www.acmicpc.net

 


풀이 1

  • 사용 언어 : Python
  • 풀이한 날짜 : 2022-03-05
string = input()
length = len(string)

cnt = 1
for i, elem in enumerate(string):
    if elem == " ":
        cnt += 1

        if i == 0 or i == (length - 1):
            cnt -= 1

if length == 0:
    cnt = 0
if length == 1 and string[0] == " ":
    cnt = 0

print(cnt)

 

풀이 로직

  • 공백의 개수는 (단어의 개수) - 1 이다. 따라서 공백의 개수를 세면 단어의 개수를 O(1) 내에 구할 수 있다.
  • 만일 공백이 시작이나 끝에 주어진 경우라면, 구한 개수에 1을 뺀다.
  • 반례 후보 입력값 : 문자열 길이가 0이나 1인 다음의 경우
    • "", " ", "a",

 

문제 접근 과정 및 느낀점

  • 풀이는 간단하여 금방 생각해냈으나, 진짜 문제는 예외 처리였다. 맞왜틀 하면서 대부분의 시간을 소요..

 


풀이 2 (모범 답안 참고)

답안 출처

  • 사용 언어 : Python
  • 풀이한 날짜 : 2022-03-05
print(len(input().split()))

 

풀이 로직

  • 사실 그냥 입력 받은 문자열을 공백 단위로 잘라 리스트로 저장하고 그 요소 개수를 구하면 한 줄에 풀릴 문제였다.

 

느낀 점

  • 이렇게나 단순하게 풀 수 있었던 문제였는데 왜 이런 생각을 못했을까..
  • input().split()을 입력 받을 때만 주구장창 써서 그랬는지 해당 코드의 의미가 내 머릿속에서 옅어졌던 것 같다.

 

반응형

'◼ PS Note > 백준' 카테고리의 다른 글

[백준] 2738번 : 행렬 덧셈 (🥉브론즈 5) (JavaScript)  (2) 2023.01.21
[백준] 1085번 : 직사각형에서 탈출 (🥉브론즈 3) (Python)  (0) 2023.01.21
[백준] 1978번 : 소수 찾기 (🥈실버 4) (Python)  (2) 2023.01.21
[백준] 1748번 : 수 이어 쓰기 1 (🥈실버 3) (Python)  (2) 2023.01.21
[백준] 1316번 : 그룹 단어 체커 (🥈실버 5) (Python)  (0) 2023.01.21
'◼ PS Note/백준' 카테고리의 다른 글
  • [백준] 2738번 : 행렬 덧셈 (🥉브론즈 5) (JavaScript)
  • [백준] 1085번 : 직사각형에서 탈출 (🥉브론즈 3) (Python)
  • [백준] 1978번 : 소수 찾기 (🥈실버 4) (Python)
  • [백준] 1748번 : 수 이어 쓰기 1 (🥈실버 3) (Python)
SangYoonLee (SYL)
SangYoonLee (SYL)
Slow, But Steady Wins The Race 😎
    반응형
  • SangYoonLee (SYL)
    ◆ Slow, But Steady ◆
    SangYoonLee (SYL)
  • 전체
    오늘
    어제
    • ◻ 전체 글 수 : (132)
      • ✪ 취미, 경험 회고 및 일상 (26)
        • [취미] Room Escape (2)
        • [회고] IT 관련 경험 회고 (18)
        • [일상] 일상 생각 (4)
        • [일상] 독후감 (1)
      • ◼ FrontEnd (30)
        • Web & HTML, CSS (9)
        • JavaScript (4)
        • TypeScript (1)
        • ReactJS (16)
      • ◼ CS (3)
        • 자료구조 & 알고리즘 (1)
        • 컴퓨터 구조 (1)
        • 운영체제 (1)
      • ◼ PS Note (40)
        • 백준 (38)
        • 프로그래머스 (2)
      • ◼ IT Etc. (33)
        • (Until 2021) (21)
        • Python (6)
        • C | C# | C++ (1)
        • Git (1)
        • Unity (4)
        • Game Dev. (0)
  • 블로그 메뉴

    • 홈
    • 💻 GitHub
    • 🟢 Velog
    • 🧩 온라인 방탈출 출시 작품 모음
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    주간 회고
    Cpp
    C++
    위코드
    React
    관심사의 분리
    소수 구하기
    백준
    알고리즘
    CodeSoom
    유니티
    코딩 일기
    Component
    프로젝트
    Python
    파이썬
    wecode
    코드숨
    미궁 게임
    1929
    프로그래머스
    JavaScript
    개인 프로젝트
    pygame
    후기
    더라비린스
    회고
    방탈출고사
    unity
    리엑트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
SangYoonLee (SYL)
[백준] 1152번 : 단어의 개수 (🥉브론즈 2) (Python)
상단으로

티스토리툴바