코딩테스트

python 문법 (까먹거나 새롭게 알게된 것)

  1. for-else
numbers = [1, 3, 5, 7]

for num in numbers:
    if num == 10:
        print('nums에 10이 포함되어 있습니다.', num)
else:
    print('nums에 10이 포함되어 있지 않습니다.', num)
  1. in 연산자
numbers = [1, 5, 6, 7, 8]
find_number = 5

if find_number in numbers:
    print('5는 numbers 안에 포함되어 있습니다.', find_number)
  1. 배열 체크
numbers = []
 
if numbers: # 배열 안에 요소가 있으면
    print('배열 안에 요소가 있습니다.', numbers)

if not numbers: # 배열 안에 요소가 없으면
    print('배열 안에 요소가 없습니다.', numbers)
  1. 리스트컴프리핸션
arrays = [0 for _ in range(100)]
print(arrays)

에라토스테네스의 체

에라토스테네스라는 수학자가 만든 기법 (뜰채 같은 걸로 거른다고 생각하면됨)

  • 2, 3, 5, 7을 제외한 나머지 수 중에 2, 3, 5, 7의 배수를 제거하는 방식
n = 1000 # 시행횟수
is_prime_nums = [False,False] + [True]*(n-1)
primes = []

for i in range(2,n+1):
  if is_prime_nums[i]:
    primes.append(i)
    for j in range(2*i, n+1, i):
        is_prime_nums[j] = False
print(primes)
n = 1000 # 시행 횟수
prime_numbers = []

for check_num in range(2, n + 1):
    for check_prime in range(2, check_num):
        if check_num % check_prime == 0:
            break
    else:
        prime_numbers.append(check_num)

print(prime_numbers)

재귀함수

  • 자기자신을 반복적으로 부르는 행동
  • 마지막 조건을 설정하는 것이 중요함

recursive_call

def recur(n):
    if n < 1:
        return 1
    recur(n - 1)
    print(n)

n = 3
recur(n)

댓글남기기