cro = ['c=', 'c-', 'd-', 's=', 'z=', 'lj', 'nj', 'dz=']
one = input()
a = list(one)
b = []
num = 0
i = 0
minus = 0
while i < (len(one)):
if ("".join(a[i: i + 3]) in cro[7:] and a[i] != '=' and a[i] != '-'):
#print('{}'.format("".join(a[i: i + 3])))
num += 1
b.append("".join(a[i: i + 3]))
i += 3
elif("".join(a[i: i +2]) in cro[0:7] and a[i] != '=' and a[i] != '-'):
num +=1
b.append("".join(a[i: i +2]))
#print('{}'.format("".join(a[i: i + 2])))
i += 2
elif(a[i] == '-' or a[i] == '='):
minus -= 1
i += 1
else:
i += 1
b = ("".join(b))
c = len(one) - len(b) + num + minus
print("{}".format(c))
와 진짜 푸는데 오래 걸렸다. if 첫번째에서 그냥
cro[7] 이라 해서 문자열이 나와 dz가 반례가 되는 것을 생각하지 못 했다.
마치 'abc' in 'abcd' 하면 true인 것 처럼
다른 사람이 푼 코드 찾아보니까 그냥 3줄이면 풀던데
이 코드는 너무 파이썬이 아니라 c스타일 같아서 별로다 다른 사람이 어떻게 풀었는지 보고와야지.
그래도 풀어서 기분이 좋다.
백준 파이썬 1003번 (0) | 2020.09.10 |
---|---|
백준 파이썬 2748번 (0) | 2020.07.24 |
백준 10814번 파이썬 (0) | 2020.07.18 |
백준 1436번 파이썬 (0) | 2020.07.17 |
백준 2798번 파이썬 (0) | 2020.07.16 |
댓글 영역