1. k번째 약수
- n번째인 것을 찾을 때는 count+=1 로 찾는 방법도 고려
- for ~ else: 반복문에서 break가 있고, 실행되지 않았을 때의 동작을 else문에 정의
2. k번째 수
- 여러 변수의 입력받는 경우도 있다는 것을 생각하기
이 때는 map(int, input().split())으로 입력받자
3. k번째 큰 수
- 더할 수 있는 모든 경우의 수를 구할 때는 반복문의 시작 인덱스를 각각 i, j, k ... 라고 할 때 처음을 제외한 직전 반복문의 시작 인덱스+1로 시작 인덱스를 맞춘다.
- 리스트의 내림차순 정렬: list.sort(reverse=True)
4. 대표값
- enumerate의 사용: for index, value in enumerate(list) 형식으로 사용하고, 리스트의 경우 순서와 값을 가진 객체를 리턴한다.
- 리스트 요소들의 평균 구하기: sum(list) / n
5. 정다면체
- 요소가 여러 개인 리스트를 초기화: [0]*n
6. 자릿수의 합
- 각 자리의 합을 구하는 법은 str()로 각 자리를 나눈 후 정수형으로 만들어 더할 수도 있고, while문으로 10으로 나눈 것의 나머지를 구해서 더해주고 몫만 떼어 10으로 나눈 나머지를 더하는 과정을 반복할 수도 있다.
7. 소수(에라토스테네스 체) (부제: 소수의 개수)
- 소수의 개수를 구할 때는 리스트의 인덱스를 활용한다. 반복문으로 2부터 n까지 반복하면서 인덱스가 n까지 있는 리스트의 각 원소의 값이 0일 때(소수일 때) count+=1하고 그 수의 배수들을 다시 반복문을 통해 원소 값을 1로 만들어 준다.
- 한 숫자의 모든 배수에 접근할 때는 range(start, end, start)
8. 뒤집은 소수 (부제: 소수인지 판별)
- 숫자 뒤집기: 10으로 나눈 나머지를 계속 더해주는데, 이전 값에 10을 곱한 것을 더해준다. 그리고 몫만 남겨 0이 될 때까지 반복.
- 소수의 개수가 아니고 이 숫자가 소수인지 판단하는 방법은, 소수의 정의에 따라 숫자를 2부터 쭉 나눴을 때 나머지가 0이 아닌 경우를 찾으면 된다. 그런데 2부터 자기 자신까지 나눌 필요는 없고 숫자/2 까지만 나눠봐도 소수인지 판별 가능하다. (먼저 숫자가 1일 때는 해당 없으므로 미리 false로 리턴하게 설정)
9. 주사위 게임
- 비교해야 할 때 개수가 적으면 각각의 원소를 변수에 하나씩 할당해 줄 수도 있다.(unpacking)
- 리스트를 여러개 입력해야 하는 경우, 반복문을 통해 하나씩 처리하는 방식을 시도한다.
10. 점수 계산