알고리즘 모음(C++)

백준 2864 - 5와 6의 차이(C++) 본문

백준

백준 2864 - 5와 6의 차이(C++)

공대생의 잡다한 사전 2023. 5. 10. 22:28

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

 

2864번: 5와 6의 차이

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

www.acmicpc.net

5와 6을 찾아 수를 다르게 저장해주는 문제였습니다.

두 수의 최솟값과 최댓값을 저장해주는 변수를 만들어줍니다.

최솟값과 최댓값을 저장할 때, 5가 있으면 최댓값은 6으로 바꿔주며, 6이 있으면 최솟값은 5로 바꿔주면 됩니다.

 

구해진 최솟값들과 최댓값들을 더해준 값을 출력하면 됩니다.

 

자세한 것은 코드를 참고해주세요.

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <cstring>
#include <cmath>
#define P pair<int, int>
#define F first
#define S second
#define INF 987654321

using namespace std;

string a, b;
int max_a, max_b, min_a, min_b;

void solve(){
    for(int i = 0; i < a.size(); i++){
        if(a[i] == '6'){
            max_a = max_a * 10 + 6;
            min_a = min_a * 10 + 5;
        }
        else if(a[i] == '5'){
            max_a = max_a * 10 + 6;
            min_a = min_a * 10 + 5;
        }
        else{
            max_a = max_a * 10 + a[i] - '0';
            min_a = min_a * 10 + a[i] - '0';
        }
    }
    for(int i = 0; i < b.size(); i++){
        if(b[i] == '6'){
            max_b = max_b * 10 + 6;
            min_b = min_b * 10 + 5;
        }
        else if(b[i] == '5'){
            max_b = max_b * 10 + 6;
            min_b = min_b * 10 + 5;
        }
        else{
            max_b = max_b * 10 + b[i] - '0';
            min_b = min_b * 10 + b[i] - '0';
        }
    }
    cout << min_a + min_b << " " << max_a + max_b;
}

int main(){
    cin.tie(0);
    cout.tie(0);
    cin >> a >> b;
    solve();
    return 0;
}

 

 

질문 및 조언은 댓글을 남겨주세요

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

백준 11945 - 뜨거운 붕어빵(C++)  (0) 2023.05.10
백준 27866 - 문자와 문자열(C++)  (0) 2023.05.10
백준 10102 - 개표(C++)  (0) 2023.05.10
백준 10824 - 네 수(C++)  (0) 2023.05.06
백준 10798 - 세로읽기(C++)  (0) 2023.05.06