본문 바로가기
PS 문제 풀이/Baekjoon

[BOJ] 백준 2588 곱셈

by 까망 하르방 2022. 1. 11.
반응형

Approach

출처https://www.acmicpc.net/problem/2588

각 자릿수를 쉽게 처리하기 위해서 문자열로 받아서

배열(인덱스)로 받아 아스키 코드를 이용해 처리한다.

📌 아스키(Ascii) 코드 활용

 

아스키(Ascii) 코드 활용

아스키(Ascii) 코드 활용 프로그래밍 문제를 풀 때(PS)는 0 ~ 9 숫자를 문자로 표현하는 경우도 있고, 반대로 "A ~ Z" 혹은 "a ~ z" 문자를 정수형으로 이용하는 경우가 있다. 이때 이용하는 것이 아스키(

zoosso.tistory.com

 

A * B 결과자는 문자열 B를 atoi 함수로 정수로 변환해서 계산한다.

참고로 atoi() 함수는 <stdlib.h> 헤더파일에 있다.

#include <stdio.h>
#include <stdlib.h>

int A;
char B[4];

int main()
{
    // freopen("input.txt", "r", stdin);
    scanf("%d", &A);
    scanf("%s", B);

    for (int i = 2; i >= 0; --i)
    {
        printf("%d\n", A * (B[i] - '0'));
    }

    printf("%d\n", A * atoi(B));
}

 

또 다른 방법으로는 나눗셈과 나머지 연산을 구하는 것이다.

%10 을 통해 1의 자리수를 구할 수 있다.

 

1 10 100 자릿수를 구하기 위해서 10으로 나누어서 한자리씩 절삭하면서

동시에 1의 자릿수를 구해서 결과에 반영해준다.

#include <iostream>

using namespace std;

int N, M;

int main()
{    
    // freopen("input.txt", "r", stdin);
    cin >> N >> M;

    int result = N * M;

    for (int i = 0; i < 3; i++)
    {
        cout << N * (M % 10) << endl;
        M = M / 10;
    }
    cout << result << endl;;
}
반응형

'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글

[BOJ] 백준 2605 줄 세우기  (0) 2022.01.12
[BOJ] 백준 2592 대표값  (0) 2022.01.12
[BOJ] 백준 2566 최댓값  (1) 2022.01.10
[BOJ] 백준 2506 점수계산  (0) 2022.01.08
[BOJ] 백준 2495 연속구간  (0) 2022.01.07

댓글