import sys
sys.stdin = open("11653_소인수분해.txt", 'r')
input = sys.stdin.readline
N = int(input())
while N > 1:
for i in range(2, N + 1):
if N % i ==0:
print(i)
N //= i
break
break를 추가하지 않으면 N의 값이 i로 나눈 결과로 갱신되지 않아 다른 결과가 나온다.
while 문이나 for 문을 사용하는 반복문에서 break를 사용하면 반복문 전체를 빠져나오게 된다.
반복문 전체가 아니라 해당 조건만 건너뛰게 하려는 경우 continue를 사용한다.
위의 문제 에서는 if 조건문이 아니라 변경된 N의 값으로 for 문의 범위를 재설정해야하기 때문에 continue가 아니라 break를 사용해야 한다.
from itertools import combinations를 사용했다.
import sys
from itertools import combinations
sys.stdin = open("2798_블랙잭.txt", 'r')
input = sys.stdin.readline
N, M = map(int, input().split())
cards = list(map(int, input().split()))
sum_arr = list(combinations(cards, 3))
max_sum = 0
for i in sum_arr:
if (sum(i) > max_sum) & (sum(i) <= M):
max_sum = sum(i)
print(max_sum)
리스트 list()는 서로 연산할 수 없기 때문에 연산하기 위해 집합 set()을 사용한다.
# 1269. 대칭 차집합
# https://www.acmicpc.net/problem/1269
import sys
sys.stdin = open("1269_대칭 차집합.txt", 'r')
input = sys.stdin.readline
N, M = map(int, input().split())
A = set(map(int, input().split()))
B = set(map(int, input().split()))
# print(len(A - B) + len(B - A))
print(len(set(A) ^ set(B)))
set(A) ^ set(B)로 대칭 차집합을 구할 수 있다.