Odds and Ends

백준 : 11008번 복붙의 달인 [파이썬, 문자열, 실버5] 본문

코딩 테스트

백준 : 11008번 복붙의 달인 [파이썬, 문자열, 실버5]

Squidward 2022. 8. 3. 19:43

문제

한신이는 대학교에서 "복붙의 달인"으로 유명하다. 한신이는 타이핑 속도가 느리기 때문에 대학에서 가능한 모든 일을 복붙으로 해결한다. 그는 n개의 문자를 입력하는데 있어서 n초의 시간이 걸리지만 뛰어난 "붙여넣기" 스킬을 이용하면 어떠한 개수의 문자도 단 1초만에 타이핑 할 수 있다. 만약 한신이가 "bana"를 복사한 상태에서 "banana"를 타이핑한다면, "bana" 붙여넣기 1초, 'n' 입력, 'a' 입력으로 총 3초가 걸린다. 한신이가 클립보드에 저장한 p를 알고 있을 때 s를 입력하는데 걸리는 최소 시간을 계산해보자!

입력

첫 번째 줄에는 테스트케이스의 개수 T(T ≤ 25)가 입력된다. 각 테스트케이스는 한 줄에 2개의 문자열 s와 p가 공백으로 구분되어 입력되며 한신이는 p를 복사하여 s를 만들어 내는 것을 목표로 한다. s의 최대 길이는 10,000이고, p의 최대 길이는 100이다.

출력

각 테스트 케이스에 맞는 한신이가 p를 이용하여 s를 타이핑할 때 걸리는 최소 시간(초 단위)을 출력하라!

예제 입력 

2
banana bana
asakusa sa

예제 출력 

3
5

[문제 풀이]

: count 함수를 이용해 복붙할 단어가 문자열에 포함된 개수를 구한다. 문자열에서 포함된 문자를 지운 뒤 남은 문자의 개수 + 복붙단어 포함된 수를 합쳐 출력한다.

n = int(input()) # 테스트 케이스 개수 입력

for _ in range(n): # 테스트 케이스 반복
    s, word = map(str, input().split()) # 전체 문자열, 복붙할 단어

    cnt = 0
    # 문자열 내에 word가 포함되면 횟수 증가
    cnt = s.count(word)

    # word에 해당하는 단어 삭제
    replaced = s.replace(word, "")
    print(cnt + len(replaced))
728x90