백준
백준 2941 문제풀이 [python]
ys.k
2023. 6. 28. 03:17
포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.
문제를 보자.
알파벳 + 크로아티아 알파벳의 개수를 출력하면 되는 문제이다.
dz= 이 입력값으로 들어올 때, z= 과 이중으로 셈을 해서는 안된다는 걸 알아두자.
코드
a = input()
memory = ['a' for _ in range(102)]
for i in range(len(a)):
memory[i] = a[i]
array = ['c=','c-','dz=','d-', 'lj', 'nj', 's=','z=']
count = 0
for i in range(len(a)):
if memory[i]+memory[i+1]+memory[i+2] in array:
count += 2
memory[i],memory[i+1],memory[i+2]= 'a','a','a'
elif memory[i]+memory[i+1] in array:
count += 1
print(len(a)-count)
내 풀이다.
역시나 코드가 긴 게 마음에 들지 않아, 다른 사람의 코드를 보았고, 새로운 걸 배웠다.
코드
croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
word = input()
for i in croatia :
word = word.replace(i, '*') # input 변수와 동일한 이름의 변수
print(len(word))
출처 : https://ooyoung.tistory.com/74
백준 2941번 [파이썬] 크로아티아 알파벳 : replace 함수
[Python] 백준 알고리즘 온라인 저지 2941번 : 크로아티아 알파벳 크로아티아 알파벳 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= Python3 코드 croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] word = input() for i in
ooyoung.tistory.com
정말 효율적이다.
나도 replace함수 알았으면 생각해 냈을 거다!
또한 이번 문제로 백준 가장 많이 풀린 100문제를 모두 풀어봤다.
기쁘다.
배운 점
1. str.replace(찾을 값, '대체 값') // 을 통해 찾을 값을 대체 값으로 바꿀 수 있다.