Coding Test/[Python] Programmers lv1
[Python] Programmers lv1 두 개 뽑아서 더하기, 문자열 내 마음대로 정렬하기
winCow
2021. 5. 25. 21:21
1. 두 개 뽑아서 더하기
def solution(numbers):
answer = []
for i in range(len(numbers)):
for j in range(len(numbers)):
if i != j:
answer.append(numbers[i]+numbers[j])
answer = sorted(list(set(answer)))
return answer
같은 배열을 두 번 사용하는 방법이 있었다. 처음에는 이게 가능한지 몰라서 numbers 배열을 복사해서 사용하려고 시도했다. 인덱스 i와 j가 같지 않은 경우에만 더해준 뒤, set으로 중복을 제거하고, list와 sorted로 정렬하면 된다.
2. 문자열 내 마음대로 정렬하기
def solution(strings, n):
answer = []
for i in range(0, len(strings)):
strings[i] = strings[i][n] + strings[i]
answer = sorted(strings)
for i in range(0, len(answer)):
answer[i] = answer[i][1:]
return answer
strings의 각 요소인 문자열의 앞에, n번째 문자열을 덧붙여준 뒤 정렬하면 된다. 이렇게 하면 우선적으로 n번째 문자를 기준으로 문자열을 정렬하고, n번째 문자열이 같은 경우라도 원래 문자를 사전 순서대로 정렬해 준다. 정렬 후에는 다시 문자열을 슬라이싱하여 원래 문자열을 반환하도록 한다.