백준 2864번. 5와 6의 차이

연성·2020년 10월 1일
0

코딩테스트

목록 보기
53/261

이것저것 시도하다가 다 안 되서 쉬운 거 하나 풀었다.

백준 2864번. 5와 6의 차이

1. 문제

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

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

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

2. 입력

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

3. 출력

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

4. 풀이

  • 최솟값은 565로 바꾸고 최댓값은 566으로 바꾸서 각각 더해주면 된다.
  • 변수가 좀 많이 사용되었나 싶지만 그냥 하기로 했다.

5. 처음 코드와 달라진 점

  • 없듬...

6. 코드

#include <iostream>
#include <string>

using namespace std;

int main() {
	cin.tie(NULL);
	ios_base::sync_with_stdio(false);

	string num1, num2;
	cin >> num1 >> num2;

	string maxNum1="", maxNum2 = "";
	string minNum1 = "", minNum2 = "";

	for (char n : num1){
		if (n == '5' || n == '6') {
			maxNum1 += '6';
			minNum1 += '5';
		}
		else {
			maxNum1 += n;
			minNum1 += n;
		}
	}

	for (char n : num2) {
		if (n == '5' || n == '6') {
			maxNum2 += '6';
			minNum2 += '5';
		}
		else {
			maxNum2 += n;
			minNum2 += n;
		}
	}

	cout << stoi(minNum1) + stoi(minNum2) << " " << stoi(maxNum1) + stoi(maxNum2);

}

0개의 댓글