https://www.acmicpc.net/problem/11008
11008번: 복붙의 달인
한신이는 대학교에서 "복붙의 달인"으로 유명하다. 한신이는 타이핑 속도가 느리기 때문에 대학에서 가능한 모든 일을 복붙으로 해결한다. 그는 n개의 문자를 입력하는데 있어서 n초의 시간
www.acmicpc.net
c++로 백준 11008번 문제를 풀어보겠다.
문제
한신이는 대학교에서 "복붙의 달인"으로 유명하다. 한신이는 타이핑 속도가 느리기 때문에 대학에서 가능한 모든 일을 복붙으로 해결한다. 그는 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를 타이핑할 때 걸리는 최소 시간(초 단위)을 출력하라!
예제 입력 1 복사
2
banana bana
asakusa sa
예제 출력 1 복사
3
5
<문제 풀이>
1. n을 입력받는다.
2. for문을 n번 반복하며 계산값을 출력한다.
- for문 반복문 코드 내용 -
str, newstr을 입력받는다.
str을 돌며 newstr의 문자가 들어있는 지 확인하고 output값을 하나 증가시킨다.
output+(str.length()-output*newstr.length()) 값을 출력한다.
코드는 다음과 같다.

online c++ complier에서는 잘 돌아갔지만 백준 사이트에서는 "틀렸습니다"라고 떴다.
다음에 무엇이 문제인지 다시 도전해봐야겠다.
'C++' 카테고리의 다른 글
[백준 알고리즘] 11721번 : 열 개씩 끊어 출력하기, c++ (0) | 2022.04.06 |
---|---|
[백준 알고리즘] 9325번 : 얼마?, c++ (0) | 2022.04.05 |
[백준 알고리즘] 23253번 : 자료구조는 정말 최고야, c++ (0) | 2022.04.04 |
[백준 알고리즘] 11899번 : 괄호 끼워넣기, c++ (0) | 2022.04.03 |
[백준 알고리즘] 11944번 : NN, c++ (0) | 2022.04.02 |