[SW Expert Academy, SWEA 15230] 알파벳 공부 (python)
Problem Solving/SWEA

[SW Expert Academy, SWEA 15230] 알파벳 공부 (python)

728x90

https://swexpertacademy.com/main/code/problem/problemDetail.do?problemLevel=3&contestProbId=AYLnMQT6vPADFATf&categoryId=AYLnMQT6vPADFATf&categoryType=CODE&problemTitle=&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=3&pageSize=10&pageIndex=1

 

SW Expert Academy

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

swexpertacademy.com


※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.

728x90

내 생각

'가장 긴 순서에 맞는 알파벳 길이'를 구하는 것이 아니라 '처음부터 어디까지 순서대로 일치하는지의 길이'를 구하는 것이다.

 

abcderrrabcdefg가 있을 때,

앞의 abcde까지만 순서에 맞고 r이 나오며 순서가 틀렸다.

따라서 이 문장의 답은 5이다.

뒤에 abcdefg가 순서대로 적혀 있다고 해서 답이 7이 아니다.

 

또한

abcdexghijk

f 자리에 x가 잘못 들어간 것 빼고는 ghijk도 순서대로 적히긴 했다.

하지만 x가 순서가 틀리므로 뒤에 문장이 순서가 맞던 맞지 않던

답은 abcde까지인 5이다.

 

마찬가지로

abcdexfghijk

중간에 x가 낀 것 빼고는 a~k까지 순서대로 적혀있긴 하지만,

x로 인해 나머지 문자들은 순서가 한 칸씩 밀린 셈이 되었다.

따라서 이 문장의 답도 abcde까지인 5이다.

str = "abcdefghijklmnopqrstuvwxyz"

t = int(input())

for test_case in range(1, t + 1):
    input_str = input()

    # 순서에 맞게 적힌 알파벳 개수
    count = 0
    for i in range(len(input_str)):
        # 순서에 맞게 적혔다면 count + 1
        if str[i] == input_str[i]:
            count += 1
        # 순서가 틀린 알파벳이 나왔다면 반복문 탈출
        else:
            break

    print("#{} {}".format(test_case, count))
728x90