반응형
oooxxx와 같은 문자열을 입력 받아 o에가 연속적으로 나올때 마다 점수가 1씩 누적해서 올라가는 문제.
나는 다음과 같이 풀었다.
num = int(input())
for n in range(num):
score = 0
s = 0
result = input()
for a in range(len(result)):
if result[a] == "O":
s+=1
score += s
else:
s = 0
print(score)
문자열 자리수마다 o인지 확인해서 o일때마다 점수에 누적해서 올리고, x나올때는 s값을 초기화시켜서 흐름을 끊었다.
문제를 제출하고 다른 사람들 풀이를 확인 할때 replace를 사용하는 것을 보았다.
num = int(input())
for n in range(num):
score = 0
result = input()
result = result.replace("X"," ").split()#x를 공백으로,split을 공백기준으로 리스트로 변환!
print(result)
for a in result:
for b in range(1,len(a)+1):
score += b
print(score)
2가지가 놀라웠는데 replace로 x를 없애면서 동시에 새로운 리스트로 바꾼것이 놀라웠고 또 변수 b가 1씩 늘어난다는 점을 이용해 간단하게 점수를 누적시켰다.
역시 많이 알아야 간단하게 풀 수 있는 것 같다
반응형
'알고리즘 문제들 으악 > 백준' 카테고리의 다른 글
[python]1065번 내가 한 풀이 (0) | 2022.03.24 |
---|---|
[python]4673번 문제, 고수님들은 멋있다. (0) | 2022.03.23 |
[python]4344번, 무조건 소수점 n자리 나오게 하기 (0) | 2022.03.21 |
[python]1110번 괜히 어렵게 풀었다. (0) | 2022.03.19 |
[python]2525번 풀면서 계속 저지르던 실수 (0) | 2022.03.12 |