문제
풀이
- muse는 키보드가 구리다
- 키를 누를때마다 a~z까지 입력된다.
- 입력하고자 하는 s가 주어졌을 때, 원하는 글자를 제외한 나머지 글자를 지우거나 a~z를 k번 반복해서 입력하여 s를 만들기위해 k를 최소화하려한다.
- k의 최솟값을 출력하라.
- 어떠한 word가 주어져도 처음에는 무조건 키를 눌러야하므로 +1을 하였다.
- 주어진 s를 for반복문으로 순차적으로 순회하면서 전의 요소와 현재 요소를 비교해 현재요소가 더 클 경우(사전순으로 더 앞설 경우) k번 반복하지않아도 되는 경우이며 반대일 경우에는 k += 1을 해주면 된다.
코드
def solve(word: str) -> int:
return sum([1 for x in range(1, len(word)) if word[x] <= word[x-1]]) + 1
if __name__ == '__main__':
s = str(input())
print(solve(s))
결과
출처 & 깃허브
boj 19564
github