반응형
문제 바로 가기
풀이 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 |