문제풀이/BOJ

[Python] BOJ/백준 2789번 유학 금지

서채리 2021. 6. 15. 18:31

[문제]

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

 

2789번: 유학 금지

아주 멀리 떨어져 있는 작은 나라가 있다. 이 나라에서 가장 공부를 잘하는 학생들은 모두 다른 나라로 유학을 간다. 정부는 최고의 학생들이 자꾸 유학을 가는 이유를 찾으려고 했다. 하지만,

www.acmicpc.net

 


[풀이]

입력 str의 첫 번째 문자부터 "CAMBRIDGE"에 포함된 알파벳이 있는지 비교한다.

같지 않을 때마다 변수 cnt를 1씩 증가시키는데 끝까지 비교했을 때 cnt가 9라면 "CAMBRIDGE"에 있는 알파벳이 포함되어있지 않은 경우이기 때문에 최종 출력 문자 completed에 문자를 추가한다.

 

위 과정은 replace 함수를 쓰면 간단해지는데 "CAMBRIDGE"의 알파벳이 있을 경우 해당 알파벳을 ''로 replace 해 삭제할 수 있다. 코드길이는 훨씬 줄어들지만 시간은 첫 번째 코드가 더 빨리 걸린다. 이건.. 우연이겠지?..

 


[코드]

- replace() 함수 사용하지 않았을 경우

if __name__ == "__main__":
    word = input()
    censor = "CAMBRIDGE"
    completed = ""

    for i in word:
        cnt = 0
        for j in censor:
            if i != j:
                cnt += 1
        if cnt == 9:
            completed += i
    print(completed)

- replace() 함수 사용

if __name__ == "__main__":
    word = input()

    for i in "CAMBRIDGE":
        word = word.replace(i, "")
    print(word)