본문 바로가기

코딩 테스트/Python_백준88

[백준/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.
[백준/Python] 2501번 약수 구하기 문제 ■ 2501번 약수 구하기 문제 ■ 코드 풀이 두 가지 풀이법을 공유드리겠습니다. 처음 제가 푼 코드와 업그레이드한 코드입니다. 먼저 아래는 기본적으로 누구나 생각할 수 있는 코드입니다. 아래 코드는 N이 10,000 이하의 수여서 최대 10,000번의 for문을 실행할 수 있습니다. 제출할 때는 실패할까 봐 조마조마했지만, 다행히 정답처리 된 코드입니다. N, K = map(int, input().split()) num_list = [] for i in range(1,N+1): if N % i == 0: num_list.append(i) if K > len(num_list): print(0) else: print(num_list[K-1]) 그렇지만, 약수의 속성을 잘 안다면 코드를 더 단축할 수 있습니.. 2023. 4. 12.
[백준/Python] 10757번 큰 수 A+B 문제 ■ 10757번 큰 수 A + B 문제 ■ 코드 풀이 이 문제를 봤을 때 '너무 쉬운데?'라는 생각을 했습니다. 알고 보니, 파이썬에서만 쉬운 거였습니다. 다른 언어에서는 큰 수 연산 과정에서 메모리 초과가 발생한다고 합니다. 처음 알았네요. 그래서 파이썬은 아래와 같은 코드면 쉽게 문제를 풀 수 있습니다. A, B = map(int, input().split()) print(A+B) 하지만 이렇게 풀면 공부가 안 되겠죠? 제 나름대로 머리를 굴려서 아래와 같이 코드를 바꿔봤습니다. 어디서 들은 건(?) 있어서 두 개의 큰 수를 string으로 입력받고, 이를 거꾸로 뒤집어서 일의 자리부터 더하는 코드를 만들어봤습니다. 정답은 맞게 나오는데, 제출해 보니 시간 초과가 나오네요. 아마 정말 '엄청나게 큰 .. 2023. 4. 11.