ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Algorithm#4] 백준 2588 곱셈 (Python)
    Programming/Algorithm Pb 2026. 3. 12. 05:41
    반응형
    목표

     

    (1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.

     

    입력

     

    첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.

     

    출력

     

    첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.

     

    풀이
    1. 사칙연산을 이용한 풀이방법

     

    변수 설정 

     

    • 세자리 수 저장을 위한 int형 변수 A,B

     

    풀이 방법:

    1. 입력되는 두 변수가 첫째 줄, 둘째 줄로 입력이 되므로, input()을 각각 선언해서 입력 받는다. 
    2. 입력 받은 A,B 변수를 이용해서 (3), (4), (5), (6) 을 차근히 계산한다.
      1. (3) 은 A 식에 B의 첫번째 자리를 곱한식이므로 A * (B%10)  
      2. (4) 는 A 식에 B의 두번째 자리를 곱한식이므로 A * ((B%100 //10)
      3. (5) 는 A 식에 B의 세번째 자리를 곱한식이므로 A * (B//100)
      4. (6) 은 A식과 B식을 곱한식이므로 A *B 
    A = int(input())
    B = int(input())
    
    print(A * (B%10))
    print(A * ((B%100) // 10))
    print(A * (B//100))
    print(A * B)
    
    
    """
    코드 길이 : 112B (Byte)
    
    메모리 : 32412KB (약 32MB)
     - A와 B가 차지하는 메모리는 28바이트
     - 파이썬 인터프리터 실행 메모리 31000KB ~ 32000KB
    
    시간 : 32ms (0.032초)
    """

     

    A = int(input())
    B = int(input())
    
    print(A * (B % 10), A * ((B % 100) // 10), A * (B // 100), A * B, sep = "\n")
    
    # 위 소스와 메모리, 시간 동일
    # 하지만, print() 단일 호출로 입출력 시간이 감소
    2. 배열 값으로 처리하는 방법 (chilituna94님 소스 참고)

     

    변수 설정 

    • int 정수 변수 a
    • 문자열 변수 b

    풀이 방법:

    1번 풀이(사칙연산) 방식으로 보면, 세자리수가 아닌 자리수가 변경되었을때 확장성이 좋지 않다. 

    그래서 배열의 자리값을 이용하면, 확장성 문제를 처리할 수 있다. 

    1. 곱셉의 기준값이 되는 첫번째 A식을 위해 int 정수 변수 a를 입력받는다
    2. 두번째 입력되는 자연수의 각각 자리 값을 기억하기 위한 스트링 변수 b를 입력받는다. 
    3. 반복문을 사용하여 스트링 변수 b의 뒤 배열 값부터 가져와 일의 자리, 십의자리, ... 를 차례대로  a와 곱한다.
    4. 마지막으로 정수 A와 명시적 정수 변환을 진행한 B를 곱셈한다. 
    A=int(input())
    B=input()
    for i in range(1,4):
        print(A*int(B[-i]))
    print(A*int(B))

     

    비교 항목 1. 수학 연산 (몫/나머지) 2. 한 줄 출력 (sep="\n") 3. 반복문 + 문자열 (현재 코드)
    가독성 보통 (수식이 김) 나쁨 (한 줄이 너무 김) 매우 좋음
    실행 속도 빠름 가장 빠름 (미세한 차이) 빠름
    확장성 나쁨 나쁨 매우 좋음
    반응형
Designed by Tistory.