728x90
문제
코드
string = []
def swap(strings, x, y):
strings[x], strings[y] = strings[y], strings[x]
def solution(strings, n):
for i in range(len(strings)):
string.append(strings[i][n])
for size in reversed((range(len(strings)))):
for i in range(size):
if(string[i] > string[i+1]):
swap(string, i, i+1)
swap(strings, i, i+1)
elif(string[i] == string[i+1]):
if(strings[i] > strings[i+1]):
swap(string, i, i+1)
swap(strings, i, i+1)
return strings
코드해석
이 문제의 핵심은 정렬이다.
나는 이 문제를 풀기 위해 "버블 정렬(Bubble Sort)"을 사용하였다.
첫 번째 해야 하는 것은 문자열 내의 인덱스를 통해 한 글자를 뽑아내는 것이었다.
그래서 새로운 string 을 선언하여 그 곳에 넣었다.
그리고 버블 정렬을 통해 첫 번째 문자와 그 다음문자를 비교해 첫 문자가 크다면 자리를 옮기는 방법을 이용했다.
물론, 원본 배열인 strings와 새로운 문자 1개를 뽑아낸 배열 string을 같이 업데이트 하였다.
그랬더니.... 성공!
300x250
'코딩코딩' 카테고리의 다른 글
[프로그래머스] level1 완주하지 못한 선수 (0) | 2020.09.02 |
---|---|
[프로그래머스] level2 더 맵게 - 파이썬(Python) (0) | 2020.08.28 |
[프로그래머스] level2 다리를 지나는 트럭 - 파이썬(Python) (0) | 2020.08.27 |
[프로그래머스] level2 주식가격 - 파이썬(Python) (0) | 2020.08.23 |
[프로그래머스] level1 크레인 인형뽑기 게임 - 파이썬(Python) (0) | 2020.08.19 |