일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 코테
- it 뉴스
- IT 동향
- SSAFY 7기
- 카카오
- 리얼클래스
- 우테코
- 코딩테스트
- 네트워크 관리사
- 네트워크 관리사 2급
- 코딩테스트 연습
- it 이슈
- python
- html
- 신문스크랩
- 신문 스크랩
- SSAFY
- Java
- KT
- 싸피
- 백준위
- 프로그래머스
- java 객체지향 프로그래밍
- 인앱결제
- 네트워크 관리사 2급 실기
- 싸피셜
- IT 트렌드
- 백준
- SSAFYcial
- 구글
- Today
- Total
개발자일걸요..?
두 개 뽑아서 더하기 본문
링크 : https://programmers.co.kr/learn/courses/30/lessons/68644
코딩테스트 연습 - 두 개 뽑아서 더하기
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한
programmers.co.kr
(프로그래머스 > 코딩테스트 연습> 월간 코드 챌린지1 > 두 개 뽑아서 더하기)
<문제>
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.
<내가 작성한 정답 코드>
import itertools
def solution(numbers):
pick = list(itertools.combinations(numbers,2))
answer = []
for i in range(0, len(pick)):
answer.append(pick[i][0]+pick[i][1])
return sorted(list(set(answer)))
<내가 작성한 오답 코드>
import itertools
def solution(numbers):
pick = list(itertools.combinations(numbers,2))
answer = []
for i in range(0, len(pick)):
answer.append(pick[i][0]+pick[i][1])
return list(set(answer))
<추가로 알게된 점>
set을 이용한 정렬과 sorted를 이용한 정렬의 차이
ex) numbers = [0,1,2,3,100,1123] 일때,
list(set(answer)) = [1, 2, 3, 100, 1123, 4, 101, 1124, 5, 102, 1125, 103, 1126, 1223]
sorted(list(set(answer))) = [1, 2, 3, 4, 5, 100, 101, 102, 103, 1123, 1124, 1125, 1126, 1223]
즉, set을 이용해 정렬하고자 하는 것은 불가능하다. => set은 중복되는 값을 없애는 것은 가능하나 특별히 순서를 가지진 않는다.
+) set 특징 : 순서가 없다, 고유한 값을 가진다(중복 없음), mutable한 객체이다.
'알고리즘코딩 > Programmers' 카테고리의 다른 글
음양 더하기 (0) | 2021.07.24 |
---|---|
문자열 다루기 (0) | 2021.07.24 |
로또의 최고 순위와 최저 순위 (0) | 2021.07.24 |
폰켓몬 (0) | 2021.07.24 |
숫자 문자열과 영단어 (0) | 2021.07.23 |