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

문제 분석

순열이라 되어있지만 실제론 문자열 a, b 에서 일치하는 문자들을 붙이면된다.

사전순으로 출력 하라고되어 있으므로 정렬 후에 출력 하면 된다.

string 문자열도 sort() 를 사용해서 바로 정렬 할 수 있으니 사용해 주었다.

for (int i = 0; i < a.size(); i++)
	{
		for (int j = 0; j < b.size(); j++)
		{
			if (a[i] == b[j])
			{
				tmp += a[i];
				a[i] = ' ';
				b[j] = ' ';
				break;
			}
		}
	}

같은 문자가 여러 번 나오는 경우 중복으로 카운트 하는것을 방지하기 위해

해당위치의 문자를 공백으로 바꾸고,

break 를 빠져나온다.

소스코드

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
using std::cin;
using std::cout;

int main()
{ 
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	string a, b;
	while (getline(cin, a) && getline(cin, b))
	{
		string tmp = "";
		for (int i = 0; i < a.size(); i++)
		{
			for (int j = 0; j < b.size(); j++)
			{
				if (a[i] == b[j])
				{
					tmp += a[i];
					a[i] = ' ';
					b[j] = ' ';
					break;
				}
			}
		}
		sort(tmp.begin(), tmp.end());
		cout << tmp <<"\n";
	}
	return 0;
}

 

'백준 > 실버' 카테고리의 다른 글

[백준 15688]- 수 정렬하기(c++)  (0) 2026.04.03
[백준 15729]- 방탈출(c++)  (0) 2026.03.25
[백준 3060]- 욕심쟁이 돼지(c++)  (0) 2026.03.23
[백준 14916] - 거스름돈(c++)  (0) 2026.03.16
[백준 1340] - 연도 진행바  (0) 2026.03.05

+ Recent posts