[문제]
https://www.acmicpc.net/problem/2789
[풀이]
입력 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)
'문제풀이 > BOJ' 카테고리의 다른 글
[Python] BOJ/백준 2810번 컵홀더 (0) | 2021.06.15 |
---|---|
[Python] BOJ/백준 2979번 트럭 주차 (0) | 2021.06.15 |
[Python] BOJ/백준 1152번 단어의 개수 (0) | 2021.06.14 |
[Python] BOJ/백준 2037번 문자메시지 (0) | 2021.06.14 |
[Python] BOJ/백준 1362번 펫 (0) | 2021.06.14 |