주어진 문자열에서 단어의 개수를 찾고 싶을 때는 띄어쓰기를 기준으로 나누고 + 1을 해주면된다.
예외상황으로 문자열의 제일 앞, 뒤는 strip()
함수를 사용해서 공백을 제거해준다.
그리고, input=' '
공백일때를 고려해서 공백이라면 print(0) 아니면 cnt+=1
을 하는 코드를 작성했다.
array = input().strip()
if len(array) == 0:
print(0)
else:
print(array.count(' ')+1)
반복문마다 변수를 저장해놓고 계산을 하는것이 아니기때문에 첫 번째 반복문이 종료되면, cnt, sum
변수들을 초기화시켜야한다.
연속되는 숫자는 sum+=1
, 연속되지 않는 숫자를 만나면 cnt=1
로 초기화 시키기.
'''
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX
'''
import sys
input = sys.stdin.readline
T = int(input())
for _ in range(T):
quiz = input()
cnt = 0
result = 0
for i in range(len(quiz)):
if quiz[i] == 'O':
cnt += 1
result += cnt
else:
cnt = 0
print(result)
👉🏽 10 9 7 55 30
개인적으로 너무 멀리 돌아가는 코드를 써서 한강을 건너버린 케이스..
단 2줄이면 간단하게 작성 할 수 있는 코드인데 괜히 조건을 많이 따지다 푸는 시간만 오래걸리고 코드는 비효율적인 코드가 되어버렸다 😅 😅
for문 중 range()
에는 3개의 파라미터가 있다.
range(start, stop, step)
인데 다음과 같다.
- start: 시작 숫자
- stop: 끝 숫자
- step: 숫자 사이의 거리
range(0, len(s), 10)
중 마지막 step=10
을 추가하면서 10마다 끊어주는 범위를 설정 할 수 있다.
# 내가 푼 코드
import sys
input = sys.stdin.readline
s = input()
for i in range(len(s)):
if i < 10:
print(s[i],end='')
elif i % 10 == 0:
print()
print(s[i], end='')
else:
print(s[i], end='')
# 다른 사람이 푼 코드
import sys
input = sys.stdin.readline
s = input()
for i in range(0, len(s), 10):
print(s[i:i+10])