알고리즘/BOJ

백준 2864번 5와 6의 차이

꾸준함. 2018. 5. 10. 14:18

문제 링크입니다: https://www.acmicpc.net/problem/2864


알고리즘은 아래와 같습니다.

1. 최대합을 구하고 싶을 때

a) 각 자리수마다 쪼개서 해당 자리수가 5이면 6으로 바꿔주고

b) 새로운 A와 B를 더해줍니다.

2. 최소합을 구하고 싶을 때

a) 각 자리수마다 쪼개서 해당 자리수가 6이면 5로 바꿔주고

b) 새로운 A와 B를 더해줍니다.


#include <iostream>

using namespace std;

 

int A, B;

 

//최대가 되려면 5가 모두 6이 되어야 한다

int maxSum(void)

{

        int newA = 0, newB = 0;

        int copy = A;

        int multiplier = 1;

        while (copy)

        {

                 int temp = copy % 10;

                 if (temp == 5)

                         temp = 6;

                 newA += temp * multiplier;

                 multiplier *= 10;

                 copy /= 10;

        }

        copy = B;

        multiplier = 1;

        while (copy)

        {

                 int temp = copy % 10;

                 if (temp == 5)

                         temp = 6;

                 newB += temp * multiplier;

                 multiplier *= 10;

                 copy /= 10;

        }

        return newA + newB;

}

 

//최소가 되려면 6이 모두 5가 되어야한다

int minSum(void)

{

        int newA = 0, newB = 0;

        int copy = A;

        int multiplier = 1;

        while (copy)

        {

                 int temp = copy % 10;

                 if (temp == 6)

                         temp = 5;

                 newA += temp * multiplier;

                 multiplier *= 10;

                 copy /= 10;

        }

        copy = B;

        multiplier = 1;

        while (copy)

        {

                 int temp = copy % 10;

                 if (temp == 6)

                         temp = 5;

                 newB += temp * multiplier;

                 multiplier *= 10;

                 copy /= 10;

        }

        return newA + newB;

}

 

int main(void)

{

        cin >> A >> B;

 

        cout << minSum() << " " << maxSum() << endl;

        return 0;

}


개발환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~

반응형

'알고리즘 > BOJ' 카테고리의 다른 글

백준 15483번 최소 편집  (3) 2018.05.10
백준 1254번 팰린드롬 만들기  (0) 2018.05.10
백준 2624번 동전 바꿔주기  (0) 2018.05.10
백준 1328번 고층 빌딩  (0) 2018.05.10
백준 1016번 제곱 ㄴㄴ 수  (0) 2018.05.09