celina의 이것저것
[C++] 백준 2864번 - 5와 6의 차이 본문
반응형
문제
상근이는 2863번에서 표를 너무 열심히 돌린 나머지 5와 6을 헷갈리기 시작했다.
상근이가 숫자 5를 볼 때, 5로 볼 때도 있지만, 6으로 잘못 볼 수도 있고, 6을 볼 때는, 6으로 볼 때도 있지만, 5로 잘못 볼 수도 있다.
두 수 A와 B가 주어졌을 때, 상근이는 이 두 수를 더하려고 한다. 이때, 상근이가 구할 수 있는 두 수의 가능한 합 중, 최솟값과 최댓값을 구해 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 두 정수 A와 B가 주어진다. (1 <= A,B <= 1,000,000)
출력
첫째 줄에 상근이가 구할 수 있는 두 수의 합 중 최솟값과 최댓값을 출력한다.
접근
처음에는 int형으로 입력받아서 5랑 6이 있는지 찾으려고 했는데 흠 모르겠어서 string형으로 받았다
string형으로 받고 c++에서는 string을 다루기 좀 수월하니까 반복문을 돌려서 5와6을 찾고 계산하기로 했다
코드
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
using namespace std;
int main() {
string a, b;
cin >> a >> b ;
string r = a;
string x = b;
for (int i = 0; i < a.size(); i++) {
if (a[i] == '6') {
a[i] = '5';
}
}
for (int i = 0; i < b.size(); i++) {
if (b[i] == '6') {
b[i] = '5';
}
}
int c= stoi(a) + stoi(b);
for (int i = 0; i < r.size(); i++) {
if (r[i] == '5') {
r[i] = '6';
}
}
for (int i = 0; i < x.size(); i++) {
if (x[i] == '5') {
x[i] = '6';
}
}
int d = stoi(r) + stoi(x);
cout << c << " " << d; ;
return 0;
}
리뷰
흠.. 좀 노가다처럼 보이지만 어쨌든 풀긴 풀었다.
반복문을 돌려서 먼저 전부 5로 바꾸고 계산을 한다 마지막에 stoi를 통해 형변환을 해줬다
학습
아마 더 빠르고 간결한 방법이 있을거다.. 근데 아직 난... 또르르...
출처
2864번: 5와 6의 차이
첫째 줄에 두 정수 A와 B가 주어진다. (1 <= A,B <= 1,000,000)
www.acmicpc.net
'자료구조&알고리즘 > 백준' 카테고리의 다른 글
[C++] 백준 2902번 - KMP는 왜 KMP일까? (0) | 2023.03.03 |
---|---|
[C++] 백준 2920번 - 음계 (0) | 2023.03.03 |
[C++] 백준 17450번 - 과자 사기(??????/) (1) | 2023.02.16 |
[C++] 백준 16917번 - 양념 반 후라이드 반 (1) | 2023.02.10 |
[C++] 백준 2869번 - 달팽이는 올라가고 싶다 (2) | 2023.02.10 |
Comments