알고리즘

이동근·2021년 2월 14일
0

알고리즘

목록 보기
5/19

문제

정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.

접근

이중 포문을 돌려서 중복이 되면 리스트로 넣는 방식으로

코드

  1. integer_list=[] : 뽑아낸 두 값을 더한 값을 넣는 리스트
  2. 이중 for loop를 통해 numbers에서 i,j를 추출
    • 처음에는 len(numbers[i:])를 했으나, 나중에 갈수록 조건이 줄어들어서 부적합
  3. i ==j : 뽑아낸 두 값의 순서가 같으면 패스 아니면 if문 실행
  4. numbers에서 뽑아낸 값을 더해서 lntger_list 에 없으면 리스트에 추가 아니면 패스
  5. 오름차순을 위해 sorted함수 실시

다른사람의 코드


i 이후 부터 돌리기 위해 +1을 해주고 len(numbers)만큼 돌렸다.!!!
중복을 피하기 위해 set을 사용했다.

set을 사용하게 되면 {a,b,c,d}로 변경이 되는데 set의 특징 상 중복을 허용하지 않는다. 그래서 전체의 합의 경우를 넣고 set을 써줌으로서 중복을 피해준다. 그후 list로 다시 변형한뒤 sorted로 오름차순을 해준 코드!

대단!

profile
하루하루 1cm 자라는 개발자

0개의 댓글