반응형
안녕하세요~
27년차 진로탐색꾼 조녁입니다!!
1일 1코테 7일차!!! 오늘 푼 문제는 프로그래머스 월간 코드 첼린지 시즌1 문제입니다.
· 문제명 : 두 개 뽑아서 더하기
· 사용 언어 : Python3
· 난이도 : Level1
· 문제 설명
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
· 제한사항
- numbers의 길이는 2 이상 100 이하입니다.
- numbers의 모든 수는 0 이상 100 이하입니다.
· 입출력 예
numbers | result |
[2,1,3,4,1] | [2,3,4,5,6,7] |
[5,0,2,7] | [2,5,7,9,12] |
· 입출력 예 설명
입출력 예 #1
- 2 = 1 + 1 입니다. (1이 numbers에 두 개 있습니다.)
- 3 = 2 + 1 입니다.
- 4 = 1 + 3 입니다.
- 5 = 1 + 4 = 2 + 3 입니다.
- 6 = 2 + 4 입니다.
- 7 = 3 + 4 입니다.
- 따라서 [2,3,4,5,6,7] 을 return 해야 합니다.
입출력 예 #2
- 2 = 0 + 2 입니다.
- 5 = 5 + 0 입니다.
- 7 = 0 + 7 = 5 + 2 입니다.
- 9 = 2 + 7 입니다.
- 12 = 5 + 7 입니다.
- 따라서 [2,5,7,9,12] 를 return 해야 합니다.
정답코드
def solution(numbers):
answer = []
#악수받는 사람들
for i in range(1,len(numbers)):
b = numbers[i:]
#악수 진행 및 결과 append
for n in range(len(b)):
answer.append(b[n]+numbers[i])
#중복 제거 및 오름차순 정렬
answer = sorted(list(set(answer)))
return answer
간단풀이
1. 중학교 수학시간에 악수하는 문제 풀듯이 생각했고 악수자(i번째 숫자) 와 악수받을 사람들(i+1:~) 로 나눠서 다 더해줬다.
2.중복을 제거하기 위해 set으로 바꿨다가 다시 list로 바꿨다. (집합에서는 원소의 중복 미허용하므로 중복 제거해준다.)
3. 입출력 예시에선 이상없이 나오지만, sorted로 정렬해주지 않으면 특정 예시에서는 틀렸다고 뜬다. (그러니까 정렬해줘야한다.)
반응형
'코딩테스트 준비 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 모의고사 (0) | 2021.03.15 |
---|---|
[프로그래머스] 체육복 (0) | 2021.03.14 |
[프로그래머스] K번째수 (0) | 2021.03.11 |
[프로그래머스] 같은 숫자는 싫어 (0) | 2021.03.10 |
[프로그래머스] 크레인 인형뽑기 게임 (0) | 2021.03.09 |