소스 코드
from itertools import combinations
# input 값
word = str(input())
# 조합하기 위한 리스트
# asdfg 인 경우, a와s 사이의 인덱스 값은 1
items = [_ for _ in range(1,len(word))]
# 조합
combi = list(combinations(items,2))
# 만들어진 단어 넣을 빈 리스트
res = []
for q in combi:
# 이번에 뽑은 조합으로 만들 단어
tmp_word = ''
# 자를 위치를 선택
l,r = q
# 단어 만들기
tmp_word += word[:l][::-1]
tmp_word += word[l:r][::-1]
tmp_word += word[r:][::-1]
# res에 만들어진 단어 추가
res.append(tmp_word)
# 정렬
res.sort()
print(res[0])
해결 방법
1. 조합을 통해 단어를 자를 위치를 선택한다
2. for문을 통해 만든 1에서 선택한 위치를 기준으로 단어를 자르고, 붙이면서 새 단어를 만든다
3. 만들어진 단어의 리스트(res)를 정렬해서 가장 앞에있는 단어를 출력한다
느낀 점
ps. 개인적인 코드와 코드를 작성의 이유를 적은 것입니다.
오류나 적절치 않은 문법이 존재할 수 있으며, 다른 분들께는 굉장히 비효율적인 방법으로 여겨질 수 있습니다.
혹시 개선 사항, 오류 및 문제에 대한 수정 사항 등을 댓글로 남겨주신다면 감사한 마음으로 배우고 수정하겠습니다.
'코딩 문제해결 > 문제 풀이.백준' 카테고리의 다른 글
[BOJ/백준 코딩] 그룹 단어 체커 - PYTHON #1316 (0) | 2023.05.27 |
---|---|
[BOJ/백준 코딩] 점프 - PYTHON #1890 (0) | 2023.05.21 |
[BOJ/백준 코딩] 요세푸스 문제 - PYTHON #1158 (0) | 2022.01.12 |
[BOJ/백준 코딩] 큐 - PYTHON #10845 (0) | 2022.01.10 |
[BOJ/백준 코딩] A → B - PYTHON #16953 (0) | 2021.11.25 |