프로그래머스
문제 - 특이한 정렬
- 정렬에 우선순위 부여하기
- sorted(array, key=lambda x:[조건1, 조건2 …])
- sorted는 기존 배열에 영향을 주지 않는다.
백준
문제 - 세 개의 소수 문제
만약 어떤 숫자가 소수인지 알고 싶다면 제곱수를 사용한다.
- 2부터 루트 n까지의 수 중에서 n이 나누어 떨어진다면, n은 소수가 아니다.
- O(루트 n)
만약 어떤 숫자 이하의 모든 소수를 알고싶다면 에라토스테네스의 체를 사용한다.
- 2부터 루트 n + 1 까지 탐색하며, 자기 자신을 제외한 배수를 모두 제거한다.
- 이후 지워지지 않은 수들이 n 이하의 소수이다.
- O(NlogN)
- ‘5보다 큰 홀수’ 로 풀이 시도했으나 아이디어가 틀림.
- ‘3개 소수의 합’ 으로 나타내야 하며 이는 삼중 반복문으로 구현한다.
- 세 가지 원소를 오름차순으로 정렬하려면 key = lambda x: (x[0], x[1], x[2]) 를 사용한다.
- 리스트에 *를 사용하면 원소들을 unpacking 할 수 있다.