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번째 문자열이 같은 경우라도 원래 문자를 사전 순서대로 정렬해 준다. 정렬 후에는 다시 문자열을 슬라이싱하여 원래 문자열을 반환하도록 한다.
[Python] Programmers lv1 3진법 뒤집기, 체육복 (0) | 2021.05.25 |
---|---|
[Python] Programmers lv1 포켓몬, 음양 더하기, 로또의 최고 순위와 최저 순위 (0) | 2021.05.22 |
[Python] Programmers lv1 이상한 문자 만들기, 행렬의 덧셈, 예산 (0) | 2021.05.16 |
[Python] Programmers lv1 제일 작은 수 제거하기, 정수 내림차순으로 배치하기, 최대공약수와 최소공배수 (0) | 2021.05.15 |
[Python] Programmers lv1 콜라츠 추측, 정수 제곱근 판별, 자연수 뒤집어 배열로 만들기, x만큼 간격이 있는 n개의 숫자 (0) | 2021.05.14 |
댓글 영역