코딩테스트/SWExpertAcademy

가장빠른 문자열 타이핑 Python(SW Expert Academy, SWEA)

멍토 2020. 6. 14.

난이도 : D4

문제번호 : 1267

문제 주소 및 출처입니다.

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV_65wkqsb4DFAWS&categoryId=AV_65wkqsb4DFAWS&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


목차

1. 문제 설명

2. 문제 해석

3. 소스 코드


1. 문제 설명

어떤 문자열 A를 타이핑하려고 한다.

그냥 한 글자씩 타이핑 한다면 A의 길이만큼 키를 눌러야 할 것이다.

여기에 속도를 조금 더 높이기 위해 어떤 문자열 B가 저장되어 있어서 키를 한번 누른 것으로 B전체를 타이핑 할 수 있다.

이미 타이핑 한 문자를 지우는 것은 불가능하다.

예를 들어 A=”asakusa”, B=”sa”일 때, 다음 그림과 같이 B를 두 번 사용하면 5번 만에 A를 타이핑 할 수 있다.

A와 B가 주어질 때 A 전체를 타이핑 하기 위해 키를 눌러야 하는 횟수의 최솟값을 구하여라.

 

입력

첫 번째 줄에 테스트 케이스의 수 T가 주어진다.

각 테스트 케이스마다 첫 번째 줄에 두 문자열 A, B가 주어진다. A의 길이는 1이상 10,000이하, B의 길이는 1이상 100이하이다.

출력

각 테스트 케이스마다 A 전체를 타이핑 하기 위해 키를 눌러야 하는 횟수의 최솟값을 출력한다.

예시

입력 출력
2
banana bana
asakusa sa
#1 3
#2 5

2. 문제풀이

파이썬으로 풀어서 이렇게 된건지는 몰라도 D4의 난이도는 아니라고 생각한다.

풀이는 총 길이에서 빠르게 타이핑 할수있는 키를 카운팅 한다음에 (단축키 길이 -1)* 카운팅된 횟수만큼 깍아준다.

-1은 한번은 눌러야 해서 포함되는 횟수이다.


3. 소스코드

1
2
3
4
5
# D4 3143 가장 빠른 문자열 타이핑
 
for t in range(int(input())):
    a,b = input().split()
    print(f'#{t+1} {len(a)-(len(b)-1)*a.count(b)}')

 

댓글

💲 광고입니다.