문제) 문자열 내 마음대로 정렬하기
코딩테스트 연습 - 문자열 내 마음대로 정렬하기
문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱
programmers.co.kr
- 첫 풀이(오답)
- 정해진 인덱스 값 기준으로 정렬 후 중복된 값 사전 정렬 시도
- 문자열 중 인덱스 n번째 값 기준으로 정렬:
→ strings.sort(key=lambda a: a[n])
- 테스트 케이스 절반은 오답
def solution(strings, n):
strings.sort(key=lambda a:a[n])
answer=[]
s=''
id=0
index_s=0
for i in strings:
answer.append(i[n])
for k in range(len(strings)):
for j in strings:
if s==j[n]:
continue
id=answer.count(j[n])
if id>1:
index_s=answer.index(j[n]) #가장 앞에 있는 값 인덱스
for i in range(id-1):
if strings[index_s]>strings[index_s+1]:
strings[index_s],strings[index_s+1]=strings[index_s+1],strings[index_s]
index_s+=1
s=j[n]
return strings
- 내 풀이
- 먼저 사전 정렬 후, 주어진 인덱스 값으로 정렬
def solution(strings, n):
strings.sort()
strings.sort(key=lambda a:a[n])
return strings
print(solution(["sun", "bed", "car"],1)
print(solution(["abce", "abcd", "cdx"],2)
#결과
["car", "bed", "sun"]
["abcd", "abce", "cdx"]
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] [Level 1] 나누어 떨어지는 숫자 배열 (0) | 2022.03.05 |
|---|---|
| [프로그래머스] [Level 1] 두 정수 사이의 합 (0) | 2022.03.02 |
| [프로그래머스] [Level 1] 문자열 내 p와 y의 개수 (0) | 2022.02.23 |
| [프로그래머스] [Level 1] 문자열 내림차순으로 배치하기 (0) | 2022.02.23 |
| [프로그래머스] [Level 1] 문자열 다루기 기본 (0) | 2022.02.23 |