문자열 내 마음대로 정렬하기 - Python
2023. 10. 17. 10:40ㆍ공부/📝 프로그래머스
1. 풀이 코드
def solution(strings, n):
answer = []
for item in strings:
temp_str = item[n] + item[0:n] + item[n+1:]
answer.append(temp_str)
answer.sort()
return [item[1:1+n] + item[0] + item[1+n:] for item in answer]
# Test Cases
print(solution(["sun", "bed", "car"], 1))
print(solution(["abce", "abcd", "cdx"], 2))
n번째 글자를 맨 앞으로 옮긴 뒤 정렬을 하고, 다시 복원하는 과정으로 문제를 풀었습니다.
2. 다른 사람 풀이 코드
def solution(strings, n):
new =[]
answer =[]
for i in range(len(strings)):
a = strings[i][n]
b = a+strings[i]
new.append(b)
new.sort()
for i in range(len(new)):
c = new[i][1:]
answer.append(c)
return answer
저랑 비슷하게 접근한 풀이를 발견했습니다. 그런데 훨씬 좋더라구요. 왜 이런 생각을 못했는지 아쉽습니다.
3. ChatGPT
def solution(strings, n):
# n번째 글자를 기준으로 정렬하되, 같은 글자일 경우 원래 순서를 유지
return sorted(strings, key=lambda x: (x[n], x))
sorted() 함수에 key 매개변수가 있다는 사실을 새롭게 상기합니다. lambda 함수를 쓰려고 노력해야겠습니다.
'공부 > 📝 프로그래머스' 카테고리의 다른 글
K번째수 - Python (0) | 2023.10.17 |
---|---|
[1차] 비밀지도 - Python (0) | 2023.10.17 |
영어 끝말잇기 - Python (0) | 2023.10.16 |
숫자 문자열과 영단어 - Python (0) | 2023.10.16 |
짝지어 제거하기 - Python (0) | 2023.10.15 |