본문 바로가기

전체 글165

[백준/Python] 27323번 직사각형 문제 ■ 27323번 직사각형 문제 ■ 코드 풀이 A = int(input()) B = int(input()) print(A*B) 2023. 4. 17.
[백준/Python] 11653번 소인수분해 문제 ■ 11653번 소인수분해 문제 ■ 코드 풀이 소인수분해는 소수로 나눠줘야 합니다. 이때, 굳이 나눠주는 숫자가 소수인지를 판단하는 코드를 넣어주지 않아도 됩니다. 그냥 나눠지지 않으면 나누는 숫자(num)에 1씩 더해주고, 나눠지면 나누는 숫자를 2로 초기화해 주면 됩니다. 일단 num으로 나눈 몫이 0이 되면 num을 계속 2로 초기화시켜 줌으로써 소수일 때만 나눗셈이 이루어지도록 합니다. N = int(input()) num = 2 while N != 1: if N % num == 0: print(num) N = N // num num = 2 else: num += 1 2023. 4. 16.
[백준/Python] 2581번 소수 문제 ■ 2581번 소수 문제 ■ 코드 풀이 우선 1개의 숫자에 대해 소수인지를 판단하는 is_it_sosu 함수를 선언합니다. 1은 소수가 아니고, 특정 숫자의 절반까지만 확인하면 소수인지 알 수 있으므로 이를 참고하여 range를 설정합니다. 숫자가 소수이면 True(1)를, 소수가 아니면 False(0)을 반환합니다. M, N을 입력받습니다. for문을 돌면서 M이상 N이하 자연수 중 소수가 있으면 sum_of_sosu에 더합니다. first 변수는 최초 한 번만 실행됩니다. M부터 숫자가 커지므로, sum_of_sosu에 더해지는 최초의 소수가 곧 최솟값입니다. def is_it_sosu(num): sosu = True for i in range(2, num//2+1): if num % i == 0: .. 2023. 4. 15.
[백준/Python] 1978번 소수 찾기 문제 ■ 1978번 소수 찾기 문제 ■ 코드 풀이 먼저 1개의 숫자가 소수인지를 판단하는 is_it_sosu 함수를 선언합니다. 1은 소수가 아니고 자기 자신의 절반까지만 확인하면 소수인지를 알 수 있으므로 이를 참고하여 range를 설정합니다. 이 함수는 숫자가 소수이면 True(1)를, 소수가 아니면 False(0)을 반환합니다. 숫자를 list로 입력받고, 개별 원소 별로 is_it_sosu 함수를 호출합니다. 숫자 1은 소수가 아니므로, 스킵하고 2부터 count 하면 됩니다. def is_it_sosu(num): sosu = True for i in range(2, num//2+1): if num % i == 0: sosu = False break return sosu N = int(input()) .. 2023. 4. 14.
[백준/Python] 9506번 약수들의 합 문제 ■ 9506번 약수들의 합 문제 ■ 코드 풀이 크게 어렵지 않은 코드입니다. -1이 입력되기 전까지는 계속 while문을 반복하며, 숫자를 입력받습니다. 그리고 자기 자신을 제외한 약수들을 num_list에 저장합니다. 그리고 약수의 합을 total 변수에 저장합니다. 반복문이 끝나면, 문제에서 제시한 출력 양식에 맞춰 출력하면 됩니다. while True: num_list = [] total = 0 n = int(input()) if n == -1: break for i in range(1, n//2+1): if n % i == 0: num_list.append(i) total += i if total == n: temp = ' + '.join(str(i) for i in num_list) print(.. 2023. 4. 13.
[백준/Python] 5086번 배수와 약수 문제 ■ 5086번 배수와 약수 문제 ■ 코드 풀이 정말 쉬운 문제이지만, 함정이 있습니다. 입력 횟수가 정해지지 않았기 때문에, 입력받은 두 숫자가 0일 때까지 계속 입력을 받아야 합니다. 문제에 정확히 명시되어 있지 않아서 저도 한참을 들여다봤네요. A,B = map(int, input().split()) while (A != 0) | (B != 0): if (A % B) == 0: print('multiple') # 8 16 elif (B % A) == 0: print('factor') else: print('neither') A,B = map(int, input().split()) 2023. 4. 12.