소스 코드
T = int(input())
for tc in range(1,1+T):
# 찾을 문자열
k = int(input())
# 문자열
word = input()
# 문자열의 길이
num = len(word)
# 문자열 저장할 장소
board = []
for q in range(num):
for w in range(num):
# 현재 index값(w) + 찾을 문자열의 길이(q) + 1의 길이 확인
if w+q+1 <= num:
board.append(word[w:w+q+1])
# 중복 제거
board = list(set(board))
# 정렬
board.sort()
# k-1(리스트는 시작 index값이 0인데, 문제에서는 1임)
if len(board) > k-1:
print('#{} {}'.format(tc,board[k-1]))
else:
print('#{} {}'.format(tc,'none'))
해결 방법
1. 길이가 4인 문자열의 모든 문자열은 4 + 3 + 2 + 1임
(문자열의 최대 길이가 400이므로, 최대 400 * 401 / 2개의 문자열을 만들어야 함)
2. 새로운 문자열은 슬라이싱을 통해 만들었음
3. 새로운 문자열 저장, 중복 제거, 정렬
4. k-1번째 위치에 값이 존재하는 지 확인 후 출력
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제 풀이.SWEA' 카테고리의 다른 글
[SWEA 코딩] 2016년 요일 맞추기 - PYTHON #5515 (0) | 2021.06.14 |
---|---|
[SWEA 코딩] S/W 문제해결 응용 하나로 - PYTHON #1251 (0) | 2021.06.13 |
[SWEA 코딩] S/W 문제해결 응용 이미지 유사도 검사 - PYTHON #1264 (0) | 2021.06.11 |
[SWEA 코딩] 장훈이의 높은 선반 - PYTHON #1486 (0) | 2021.06.10 |
[SWEA 코딩] 문자열 동화 - PYTHON #10202 (0) | 2021.06.09 |