Study/SWEA

5254. [파이썬 S/W 문제해결 최적화] 1일차 - 부분 문자열

줴림 2025. 4. 30. 16:19

부분 문자열에 관한 문제이다. 사전 순으로 배열했을 때 N번째의 부분 문자열의 첫 글자와 그 길이를 출력하면 된다.

T = int(input())
for test_case in range(1, T+1):
    N, string = input().split()
    N = int(N)
    
    substring = set()
    
    for i in range(len(string)):
        for j in range(i+1, len(string)+1):    # 개인적으로 어려웠던 부분
            substring.add(string[i:j])         # 개인적으로 어려웠던 부분
    
    substring = sorted(substring)
    target = substring[N-1]
    answer1 = target[0]
    answer2 = len(target)
    
    print(f"#{test_case} {answer1} {answer2}")

 

이렇게 작성했는데 마지막 테스트케이스에서 계속 runtime error가 떠서 지금 거의 반 포기한 상태...

+) 결국 활동점수 차감해서 다른 사람들 풀이 계속 보러 다녔다. 다들 접미어 정렬을 기반으로 문제를 풀었던데 나중에 천천히 어떻게 하는지 공부해야겠다. 오늘은 회의랑 PT랑 또 회의랑... 이것만 끝나면 느긋해지겠지!