본문 바로가기

백준

2588 곱셈

#include <iostream>

int main() {
    int a, b;
    int tmp1, tmp2, tmp3;
    
    scanf("%d %d", &a, &b);
    tmp3 = a * (b/100);
    b -= b/100 * 100;
    tmp2 = a * (b/10);
    tmp1 = a * (b%10);
    
    printf("%d\n", tmp1);
    printf("%d\n", tmp2);
    printf("%d\n", tmp3);
    printf("%d", tmp3*100 + tmp2*10 + tmp1);
}

얼마전 수업시간에 ppt에 naive라는 단어가 있어 교수님이 이 단어가 무슨 뜻인지 물어봤다. 그래서 난 그냥 순수한 이런걸로 생각했는데 교수님이 순수같은 좋은 뜻은 아니고 순진하다와 비슷하다고 했다. 생각 많이 안 하고 단순한.. 그런뜻.. 아무튼 이 생각이 갑자기 왜 났냐면 지금 내 풀이가 나이브한 것 같다. 조금 더 좋은 풀이가 있을 것 같은데

 

 

#include <iostream>

int main() {
    int a, b;
    scanf("%d %d", &a, &b);
    
    int result = a * b;
    while(b){
        printf("%d\n", b % 10 * a);
        b /= 10;
    }
    printf("%d", result);
    return 0;
}

그래서 다른 사람 풀이를 봤는데 다 비슷비슷한 것 같다. (다행이구만) 그 중 이 분 풀이가 깔끔해서 따라 쳐봤다. 이분은 결과를 result에 저장해두고 10을 나눠가며 값을 출력했다. 비교해 보니 내 코드에서 좀 더 좋았으면 하는 부분을 알겠다. 먼저 나는 a값과 b값을 바꾸지 않아서 마지막에 A*B를 출력할 때 그냥 바로 출력하면 됐었다. 저렇게 안 복잡하게 해도 됐었다! 그리고 tmp 변수 안 사용할 수 있었는데 사용한 것도 조금 아쉽고

 

 

 

참고

https://jaimemin.tistory.com/1046

'백준' 카테고리의 다른 글

10039 평균점수  (0) 2019.09.29
8393 합  (0) 2019.09.29
15894 수학은 체육과목 입니다  (0) 2019.09.29
17256 달달함이 넘쳐흘러  (0) 2019.09.29
14652 나는 행복합니다~  (0) 2019.09.29