파이썬 알고리즘-1~10 배운 것 정리

jiffydev·2020년 8월 24일
0

Algorithm

목록 보기
11/134

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. 점수 계산

profile
잘 & 열심히 살고싶은 개발자

0개의 댓글