본문 바로가기

Baekjoon/C++

[C++][BOJ/백준] 2864 5와 6의 차이

 

 

Baekjoon Online Judge

 

2864번: 5와 6의 차이

첫째 줄에 두 정수 A와 B가 주어진다. (1 <= A,B <= 1,000,000)

www.acmicpc.net

 

 

[문제]

상근이는 2863번에서 표를 너무 열심히 돌린 나머지 5와 6을 헷갈리기 시작했다.

상근이가 숫자 5를 볼 때, 5로 볼 때도 있지만, 6으로 잘못 볼 수도 있고, 6을 볼 때는, 6으로 볼 때도 있지만, 5로 잘못 볼 수도 있다.

두 수 A와 B가 주어졌을 때, 상근이는 이 두 수를 더하려고 한다. 이때, 상근이가 구할 수 있는 두 수의 가능한 합 중, 최솟값과 최댓값을 구해 출력하는 프로그램을 작성하시오.

 

 

[입력]

첫째 줄에 두 정수 A와 B가 주어진다. (1 <= A,B <= 1,000,000)

 

 

[출력]

첫째 줄에 상근이가 구할 수 있는 두 수의 합 중 최솟값과 최댓값을 출력한다.

 

 


 

[코드]

#include <iostream>
#include <string>
using namespace std;

int main()
{
    string A, B;

    cin >> A >> B;

    string minA = A, maxA = A, minB = B, maxB = B;

    for (int i = 0; i < A.length(); i++)
    {
        if (A[i] == '5')
            maxA[i] = '6';

        if (A[i] == '6')
            minA[i] = '5';
    }

    for (int i = 0; i < B.length(); i++)
    {
        if (B[i] == '5')
            maxB[i] = '6';

        if (B[i] == '6')
            minB[i] = '5';
    }

    cout << stoi(minA) + stoi(minB) << " " << stoi(maxA) + stoi(maxB) << '\n';

    return 0;
}

string을 int로 변환하는 방법에 대해 숙지하고 있으면 간단하게 풀 수 있다.

 

 

 

'Baekjoon > C++' 카테고리의 다른 글

[C++][BOJ/백준] 4458 첫 글자를 대문자로  (4) 2024.02.08
[C++][BOJ/백준] 3047 ABC  (1) 2024.02.07
[C++][BOJ/백준] 5533 유니크  (0) 2024.02.05
[C++][BOJ/백준] 1032 명령 프롬프트  (0) 2024.02.04
[C++][BOJ/백준] 1037 약수  (0) 2024.02.03