본문 바로가기

백준/C++

[C++] 백준 2935번 - 소음

728x90

 

문제 2935번

https://www.acmicpc.net/problem/2935

 

2935번: 소음

수업 시간에 떠드는 두 학생이 있다. 두 학생은 수업에 집중하는 대신에 글로벌 경제 위기에 대해서 토론하고 있었다. 토론이 점점 과열되면서 두 학생은 목소리를 높였고, 결국 선생님은 크게

www.acmicpc.net

 

*일 때, 1을 먼저 출력해준다음 입력된 값들의 길이를 합한 후 앞자리 2씩 빼주어 0의 개수를 알아낸 후 그 길이만큼 0을 출력해준다.

+일 때, 입력된 값들의 길이가 같으면 처음에 2를 출력해준다음 나머지 길이만큼 0을 출력해준다. 만약, 입력된 값들의 길이가 다르면 가장 긴 길이부터 시작하여 차례대로 비교하며 각 입력값의 길이와 같을 때 1을 출력해주고 나머지는 0을 출력해준다.

 

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

int main() {
	string A, B;
	char oper;
	cin >> A >> oper >> B;
	if (oper == '*') {
		int n = A.length() + B.length() - 2;
		cout << '1';
		for (int i = 0; i < n; i++) {
			cout << '0';
		}
	} else if(oper == '+') {
		int An = A.length(), Bn = B.length();
		if (An == Bn) {
			cout << '2';
			for (int i = 0; i < An - 1; i++) {
				cout << '0';
			}
		} else {
			int a = max(An, Bn);
			int b = min(An, Bn);
			for (int i = a; i > 0; i--) {
				if (i == a || i == b) {
					cout << '1';
				} else {
					cout << '0';
				}
			}
		}
	}

	return 0;
}

 

 

 

728x90

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

[C++] 백준 7567번 - 그릇  (0) 2024.04.12
[C++] 백준 4999번 - 아!  (0) 2024.04.09
[C++] 백준 2744번 - 대소문자 바꾸기  (0) 2024.04.07
[C++] 백준 2902번 - KMP는 왜 KMP일까?  (0) 2024.04.06
[C++] 백준 1439번 - 뒤집기  (1) 2024.04.05