#include <iostream>
using namespace std;

int main()
{
	// Input
	char str[6] = { 'G', 'K', 'G' };
	for (int i = 3; i < 6; ++i)
	{
		cin >> str[i];
	}

	// Solve
	char dat[256] = { 0 };

	for (const char& d : str)
	{
		++(dat[d]);
		if (dat[d] == 3)
		{
			cout << "있음";
			return 0 ;
		}
	}
	
	cout << "없음";
	return 0;
}

 


int main()
{
	// Input
	int arr[6] = { 0 };
	
	for (int i = 0; i < 6; ++i)
	{
		cin >> arr[i];
	}

	// Solve
	char dat[10] = { 0 };
	for (int& d : arr)
	{
		++(dat[d]);
		if (2 <= dat[d])
		{
			cout << "도플갱어 발견";
			return 0;
		}
	}

	cout << "미발견";
	return 0;
}

 


int main()
{
	// Input
	char str[11] = { 0 };
	cin >> str;
	char dat[256] = { 0 };
	

	// Solve
	int max = -1;
	int idx = -1;
	for (int i = 0; i < 11; ++i)
	{
		++(dat[str[i]]);

		if (max < dat[str[i]])
		{
			max = dat[str[i]];
			idx = i;
		}
	}

	// Print
	cout << str[idx];
	return 0;
}

 


int main()
{
	char total[5] = { 0 };
	int cnt = 0;

	for (int i = 0; i < 2; ++i)
	{
		for (int j = 0; j < 5; ++j)
		{
			int t; cin >> t;
			total[j] += t;

			if (total[j] == 2)
			{
				++cnt;
			}
		}
	}

	cout << cnt << "개";
	return 0;
}

 


int main()
{
	// Input
	char str[] = { "ATKPTCABC" };
	int size = sizeof(str) / sizeof(char);
	char f, b;
	cin >> f >> b;
	int iF = -1, iB = -1;

	// Solve
	for (int i = 0; i < size; ++i)
	{
		if (iF == -1)
		{
			if (f == str[i])
			{
				iF = i;
			}
		}

		if (iB == -1)
		{
			if (b == str[size - i])
			{
				iB = size - i;
			}
		}
	}

	// Output
	cout << iB - iF;
	return 0;
}

 


int main()
{
	// Input
	int win[2][3] = { 3,5,1,4,2,6 };
	int size = sizeof(win) / sizeof(int*);
	int people[4] = { 0 };
	for (auto& d : people)
	{
		cin >> d;
	}

	// Solve
	int dat[10] = { 0 };
	for (int i = 0; i < size; ++i)
	{
		++(dat[*((*win) + i)]);
	}

	for (int& d : people)
	{
		cout << d << "번 ";

		if (1 <= dat[d])
		{
			cout << "합격\n\n";
		}
		else
		{
			cout << "불합격\n\n";
		}
	}

	// Output
	return 0;
}

 


int main()
{
	// Input
	char vect[] = "CODING";
	char dat[256] = { 0 };

	for (char& d : vect)
	{
		++(dat[d]);
	}

	// Solve & Output
	int n; cin >> n;
	for (int i = 0; i < n; ++i)
	{
		char c; cin >> c;
		if (1 <= dat[c])
		{
			cout << "O";
		}
		else
		{
			cout << "X";
		}
	}
	return 0;
}

 


#include <iostream>
using namespace std;

struct Pair
{
	Pair() = default;

	char str[100] = { 0 };
	int size = 0;
};


int StrLen(const char* str)
{
	int i = 1;
	while(str[i] != '\0')
	{
		++i;
	}
	return i;
}

int main()
{
	// Input
	char dat[3][256] = { 0 };

	Pair p[3];
	for (int i = 0; i < 3; ++i)
	{
		cin >> p[i].str;
		p[i].size = StrLen(p[i].str);

		for (int i = 0; i < p[i].size; ++i)
		{
			++(dat[i][p[i].str[i]]);
		}
	}
	
	// Solve
	for (int i = 0; i < 256; ++i)
	{
		int cnt = 0;

		if (0 < dat[0][i]) ++cnt;
		if (0 < dat[1][i]) ++cnt;
		if (0 < dat[2][i]) ++cnt;

		if (2 <= cnt)
		{
			cout << "No";
			return 0;
		}
	}

	cout << "Perfect";
	return 0;
}

 


int main()
{
	// Input
	char str[100] = { 0 };
	cin >> str;
	char dat[256] = { 0 };
	for (int i = 0; str[i] != '\0'; ++i)
	{
		++(dat[str[i]]);
	}

	// Output
	for (int i = 0; i < 256; ++i)
	{
		if (0 < dat[i])
		{
			cout << (char)i;
		}
	}

	return 0;
}

 


int main()
{
	// Input
	char str[100] = { 0 };
	cin >> str;
	char dat[256] = { 0 };
	for (int i = 0; str[i] != '\0'; ++i)
	{
		++(dat[str[i]]);
	}

	// Output
	for (int i = 0; i < 256; ++i)
	{  
		if (0 < dat[i])
		{
			cout << (char)i << ":" << (int)dat[i] << endl;
		}
	}

	return 0;
}

 


bool Find(const char* data, const char* token)
{
	for (int i = 0; token[i] != '\0'; ++i)
	{
		if (data[i] != token[i]) return false;
	}
	return true;
}

int main()
{
	// Input
	char token[] = { "GHOST" };
	char data[100] = { 0 };
	cin >> data;


	// Solve & Output
	for (int i = 0; data[i] != '\0'; ++i)
	{
		if (Find(data + i, token) == true)
		{
			cout << "존재";
			return 0;
		}
	}
	cout << "존재하지 않음";
	return 0;
}

 


 

class Time
{
public:
	Time() = delete;
	Time(int hour, int minute, int second)
		:mHour(hour), mMinute(minute), mSecond(second)
	{ };
	~Time() = default;
	Time(const Time&) = default;

public:
	void Print()
	{
		cout << mHour << " : " << mMinute << " : " << mSecond << endl;
	}

	Time operator+(Time& ref)
	{
		int t = 0;

		int sec = GetSceond() + ref.GetSceond();
		t = sec / 60;
		sec %= 60;

		int min = GetMinute() + ref.GetMinute() + t;
		t = min / 60;
		min %= 60;

		int hour = GetHour() + ref.GetHour() + t;
		hour %= 24;

		return Time(hour, min, sec);
	}

public:
	int GetHour() { return mHour; }
	int GetMinute() { return mMinute; }
	int GetSceond() { return mSecond; }

private:
	int mHour = 0;
	int mMinute = 0;
	int mSecond = 0;
};

int main()
{
	// Input
	Time time1(4, 50, 40);
	Time time2(3, 40, 30);
	Time time3 = time1 + time2;

	time1.Print();
	time2.Print();
	time3.Print();

	return 0;
}

'코딩 테스트 > 알고리즘 풀이' 카테고리의 다른 글

[LV4] 복습 문제  (1) 2025.04.21
[LV4] 연습 문제  (0) 2025.04.19
[LV3] 연습 문제  (0) 2025.04.14
[LV1] 복습 문제  (0) 2025.04.13
[LV1] 연습 문제  (0) 2025.04.12

+ Recent posts