[Python, 알고리즘&자료구조] for else 구문

zhzkzhffk·2022년 12월 2일
0
post-thumbnail

삼성 python 3.7이 되므로 모든 코딩테스트에서 사용 가능하다.

프로그래머스 백준에서도 사용가능하다.

for-else 구문 활용 예시

# B1929 소수 구하기

import sys

input = lambda: sys.stdin.readline().rstrip()


def solution(num1, num2):
    global n, m
    n, m = num1, num2

    for i in range(n, m + 1):
        # for 문에서 break 안되기에 1이 출력된다.
        if i == 1:
            continue

        for j in range(2, int(i ** (1 / 2) + 1)):
            if i % j == 0:
                break
        else:
            print(i)


if __name__ == '__main__':
    n, m = 0, 0
    solution(*map(int, input().split()))
  • 위 문제에서 이중 for 문에서 소수이면은 모든 for문을 돌고 for문을 빠져 나오게 된다. 이러한 얘들은 소수이기에 출력을 한다.

  • 즉 for-else는 모든 for문을 도는 얘들만 들어갈 수 있다. break일 때를 제외하고 처리할 때 좋다.

소수 판별 알고리즘

def is_prime(num) -> bool:
	if num == 1:
    	return False
    for i in range(2, int(num ** (1 / 2)) + 1):
    	if num % i == 0:
        	return False
   	return True
  • 어떠한 수가 소수인지 판별하는 방법은 다음의 로직으로 해결할 수 있다.

  • 이는 어떠한 수의 약수는 어떠한 수의 제곱근으로 대칭을 이루기 때문이다.

profile
Backend Developer

0개의 댓글