알고리즘 공부

백준 2941번

transfer_kk 2022. 12. 8. 16:50

문제

https://www.acmicpc.net/problem/2941

 

2941번: 크로아티아 알파벳

예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=

www.acmicpc.net

나의 풀이

alp=input()

alp=alp.replace('dz=','a')
alp=alp.replace('z=','a')
alp=alp.replace('c=','a')
alp=alp.replace('s=','a')
alp=alp.replace('nj','a')
alp=alp.replace('lj','a')
alp=alp.replace('d-','a')
alp=alp.replace('c-','a')

print(len(alp))

처음 코딩할때 str.maketrans()와 translate() 함수를 사용하였는데 그 함수는 변경할 문자가 character 형태인 한글자만 가능하여 에러가 발생하였다.

다른 사람의 풀이

s = input()
croatian = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
for c in croatian:
    s = s.replace(c, "!")
print(len(s))

앞으로 코드를 줄일 수 있는 방법을 조금 더 생각해보고 코드를 제출해야겠다.

replace에 관련한 글은 여기에 적도록 하겠다

https://transfer-kk.tistory.com/26

 

[파이썬] 문자열에서 특정문자를 바꾸는 방법

특정 문자열 변경을 위한 str.replace() replace()는 두 개의 매개 변수를 허용하며 첫 번째 매개변수는 바꾸고 싶은 값이며 두 번째 매개변수는 바뀌어질 값이다. ex) str='hello world!' str.replace('hello','hi')

transfer-kk.tistory.com