while True 쓴다고 지나가던 사람한테 놀림 받은 문제... 아니 근데 이거 맞잖아



- sys.stdin.readline 을 남발하지 말 것... 시간 초과가 날 때 쓰기로 해요
- 처음에는 result[0]*4 해서 각 인덱스에 +1 해주는 코드를 작성했는데 내가 보기에 헷갈릴 뿐만 아니라 자꾸 틀려서 upper 어쩌고로 바꿨다.
- 출력 초과가 난 이유는 sys.stdin.readline 때문이다. 이후 알아본 바로는 sys.stdin.readline 이 EOF 시에 빈 문자열을 반환하기 때문에 출력 초과가 난 것이다.
- 이 전에 푼 문제가 아스키 코드로 소문자를 구분하는 것이었어서 이 문제도 아스키 코드로 구분했다. 아스키 코드 표 보고 치고 있는 것 보고 또 지나가는 사람이 뭐라 했다...
# import sys
# input = sys.stdin.readline
while True:
try:
words = list(input())
# result = [0]*4
upper, lower, number, space = 0,0,0,0
for i in range(len(words)):
# 공백일 때
if words[i] == ' ':
space += 1
# 숫자일 때
elif 48 <= ord(words[i]) <= 57 :
number += 1
# 소문자일 때
elif 97 <= ord(words[i]) <= 122 :
lower += 1
# 대문자일 때
elif 65 <= ord(words[i]) <= 90 :
upper += 1
print(lower, upper, number, space)
except EOFError:
break
종료 조건이 없어서 약간 얼탔는데... 아래 글을 참고했다. 입력이 끝날 때 종료를 원한다면~
EOFerror : 입력이 끝날 때 종료를 원한다면!..
#10820 https://www.acmicpc.net/problem/10820 문자열 분석을 진행하는 문제인데, 입력 값의 개수(보통 N으로 주는데)를 주지않아서 난감한 문제이다. 파이썬에서는 이를 단순하게 해결할 수 있는데 바로 EOFe
theconcentrationoftime.tistory.com
'Algorithm 뽀개기' 카테고리의 다른 글
[백준] 2609 최대공약수와 최소공배수 (Python) (0) | 2024.07.05 |
---|---|
[백준] 11655 ROT13 (Python) 출력 형식이 잘못되었습니다 (0) | 2024.07.04 |
[백준] 17298 오큰수 (Python) (0) | 2024.07.01 |
[백준] 1874 스택 수열 (Python) (0) | 2024.06.28 |
[Programmers] Lv.2 다음 큰 숫자 (JavaScript) (3) | 2024.05.03 |
while True 쓴다고 지나가던 사람한테 놀림 받은 문제... 아니 근데 이거 맞잖아



- sys.stdin.readline 을 남발하지 말 것... 시간 초과가 날 때 쓰기로 해요
- 처음에는 result[0]*4 해서 각 인덱스에 +1 해주는 코드를 작성했는데 내가 보기에 헷갈릴 뿐만 아니라 자꾸 틀려서 upper 어쩌고로 바꿨다.
- 출력 초과가 난 이유는 sys.stdin.readline 때문이다. 이후 알아본 바로는 sys.stdin.readline 이 EOF 시에 빈 문자열을 반환하기 때문에 출력 초과가 난 것이다.
- 이 전에 푼 문제가 아스키 코드로 소문자를 구분하는 것이었어서 이 문제도 아스키 코드로 구분했다. 아스키 코드 표 보고 치고 있는 것 보고 또 지나가는 사람이 뭐라 했다...
# import sys
# input = sys.stdin.readline
while True:
try:
words = list(input())
# result = [0]*4
upper, lower, number, space = 0,0,0,0
for i in range(len(words)):
# 공백일 때
if words[i] == ' ':
space += 1
# 숫자일 때
elif 48 <= ord(words[i]) <= 57 :
number += 1
# 소문자일 때
elif 97 <= ord(words[i]) <= 122 :
lower += 1
# 대문자일 때
elif 65 <= ord(words[i]) <= 90 :
upper += 1
print(lower, upper, number, space)
except EOFError:
break
종료 조건이 없어서 약간 얼탔는데... 아래 글을 참고했다. 입력이 끝날 때 종료를 원한다면~
EOFerror : 입력이 끝날 때 종료를 원한다면!..
#10820 https://www.acmicpc.net/problem/10820 문자열 분석을 진행하는 문제인데, 입력 값의 개수(보통 N으로 주는데)를 주지않아서 난감한 문제이다. 파이썬에서는 이를 단순하게 해결할 수 있는데 바로 EOFe
theconcentrationoftime.tistory.com
'Algorithm 뽀개기' 카테고리의 다른 글
[백준] 2609 최대공약수와 최소공배수 (Python) (0) | 2024.07.05 |
---|---|
[백준] 11655 ROT13 (Python) 출력 형식이 잘못되었습니다 (0) | 2024.07.04 |
[백준] 17298 오큰수 (Python) (0) | 2024.07.01 |
[백준] 1874 스택 수열 (Python) (0) | 2024.06.28 |
[Programmers] Lv.2 다음 큰 숫자 (JavaScript) (3) | 2024.05.03 |