구현 문제이다. 보기 편하도록 맵과 배열을 이용해 변환 과정을 처리해놓았다.
string digitTo7Segment[10] = {
"063", "010", "093", "079", "106", "103", "119", "011", "127", "107"
};
map<string, string> _7SegmentToDigit = {
{"063", "0"}, {"010", "1"}, {"093", "2"}, {"079", "3"}, {"106", "4"},
{"103", "5"}, {"119", "6"}, {"011", "7"}, {"127", "8"}, {"107", "9"}
};
string getNumBy7Segment(string s) {
string ret = "";
for (int i = 0; i < s.length(); i += 3)
ret += _7SegmentToDigit[s.substr(i, 3)];
return ret;
}
string get7SegmentByNum(int x) {
string s = to_string(x);
string ret = "";
for (int i = 0; i < s.length(); i++)
ret += digitTo7Segment[s[i] - '0'];
return ret;
}
int main(void) {
fastio;
while (1) {
string s; cin >> s;
if (s == "BYE") break;
string A_ = s.substr(0, s.find('+'));
string B_ = s.substr(s.find('+') + 1, s.find('=') - s.find('+') - 1);
string A = getNumBy7Segment(A_), B = getNumBy7Segment(B_);
int C = stoi(A) + stoi(B);
cout << A_ << "+" << B_ << "=" << get7SegmentByNum(C) << "\n";
}
return 0;
}
'알고리즘' 카테고리의 다른 글
[BOJ 3673] 나눌 수 있는 부분 수열 (0) | 2024.03.28 |
---|---|
[BOJ 20310] 타노스 (0) | 2024.03.26 |
[BOJ 17215] 볼링 점수 계산 (0) | 2024.03.26 |
[BOJ 2806] DNA 발견 (0) | 2024.03.25 |
[BOJ 27966] △ (0) | 2024.03.25 |