상세 컨텐츠

본문 제목

[Python] Programmers lv1 두 개 뽑아서 더하기, 문자열 내 마음대로 정렬하기

Coding Test/[Python] Programmers lv1

by 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번째 문자열이 같은 경우라도 원래 문자를 사전 순서대로 정렬해 준다. 정렬 후에는 다시 문자열을 슬라이싱하여 원래 문자열을 반환하도록 한다.

관련글 더보기

댓글 영역