<c++> 심화 1

긍이·2023년 11월 12일
0

C++

목록 보기
7/12
post-thumbnail

오늘은 백준 알고리즘 6단계 심화 1 문제들을 풀어볼려고 한다!

매주 주말마다 한 단계씩 풀어보는 건데
어제 아침부터 오늘 아침까지 타지에 있다가 와서 어제는 문제를 풀 시간이 없었다

다음주엔 한 주 통째로 타지에 있다 와야해서
다다음주에야 문제를 풀 시간이 생길 것 같다
오늘 더 열심히 풀어보는 걸로!

📌 심화 1

✔ 25083번 새싹


<`>과 <'>을 잘 구분해서 출력

#include <iostream>

using namespace std;

int main()
{
	cout << "         ,r\'\"7\n";
	cout << "r\`-_   ,\'  ,/\n";
	cout << " \\. \". L_r\'\n";
	cout << "   `~\\/\n";
	cout << "      |\n";
	cout << "      |";
}

✔ 3003번 킹, 퀸, 룩, 비숍, 나이트, 폰

#include <iostream>

using namespace std;

int main()
{
	int k, q, r, b, n, p;

	cin >> k >> q >> r >> b >> n >> p;

	cout << -(k-1) << " " << -(q-1) << " " << -(r-2) << " " << -(b-2) << " " << -(n-2) << " " << -(p - 8);
}

10 10 10 10 10 10
-9 -9 -8 -8 -8 -2

✔ 2444번 별 찍기 - 7


문제에 나와있는데 예제 입력을 보고 규칙을 예상해야한다
예제 출력을 보면 1, 3, 5, 7, 9, 7, 5, 3, 1로 1에서 2씩 커지면 <N=5>번 줄까지 출력하고 다시 2씩 줄어들면서 출력하는 듯 하다

#include <iostream>

using namespace std;

int main()
{
	int N;
	cin >> N;

	int star = 1;
	for (int i = 0; i < N; i++)
	{
		for(int j = i; j < N-1; j++)
			cout << " ";
		for(int j = 0; j < star; j++)
			cout << "*";
		star += 2;
		cout << "\n";
	}

	star -=2;
	for (int i = 0; i < N-1; i++)
	{
		star -= 2;
		for(int j = 0; j < i+1; j++)
			cout << " ";
		for(int j = 0; j < star; j++)
			cout << "*";
		cout << "\n";
	}

}

✔ 10988번 팰린드롬인지 확인하기

#include <iostream>

using namespace std;

int main()
{
	string str;
	cin >> str;

	bool Xcheck = false;

	for (int i = 0; i < str.size(); i++)
	{
		if (str[i] != str[(str.size() - 1) - i])
			Xcheck = true;
	}

	if (Xcheck)
		cout << 0;
	else
		cout << 1;
}

lolol
1

✔ 1157번 단어 공부

#include <iostream>

using namespace std;

int main()
{
	string str;

	cin >> str;
	
	int cn[26] = {0,};

	for (char c : str)
	{
		int cnum = int(c);

		if (cnum >= 97)
			cn[cnum - 97] += 1;
		else
			cn[cnum - 65] += 1;
	}

	int max = 0;
	int index;
	bool check;
	for (int i = 0; i < 26; i++)
	{
		if (cn[i] > max)
		{
			check = false;
			max = cn[i];
			index = i;
		}
		else if (cn[i] == max)
		{
			check = true;
		}
	}

	if (check) cout << "?";
	else cout << char(index + 65);
}

AAAvvsssAVVVA
?

✔ 2941번 크로아티아 알파벳

#include <iostream>

using namespace std;

int main()
{
	string str;
	cin >> str;

	int count = 0;


	for (int i = 0 ; i < str.size();)
	{
		bool Check = false;

		char c = str[i];

		switch (c)
		{
			case 'c':
			{
				if (str[i + 1] == '=' || str[i + 1] == '-')
				{
					count++;
					i += 2;
					Check = true;
				}
			}
			break;
			case 'd':
			{
				if (str[i + 1] == 'z' && str[i + 2] == '=')
				{
					count++;
					i += 3;
					Check = true;
				}
				else if (str[i + 1] == '-')
				{
					count++;
					i += 2;
					Check = true;
				}
			}
			break;
			case 'l':
			case 'n':
			{
				if (str[i+1] == 'j')
				{
					count++;
					i += 2;
					Check = true;
				}
			}
			case 's':
			case 'z':
			{
				if (str[i + 1] == '=')
				{
					count++;
					i += 2;
					Check = true;
				}
			}
			break;
		}

		if (!Check)
		{
			count++;
			i++;
		}
	}

	cout << count;
}

ljs=
2

✔ 1316번 그룹 단어 체커

#include <iostream>

using namespace std;

int main()
{
	int N;
	cin >> N;

	int count = 0;

	for (int i = 0; i < N; i++)
	{
		string  str;
		cin >> str;

		bool check = false;

		int cn[26] = { 0, };

		char bc = ' ';

		for (char c : str)
		{
			int n = int(c);

			if (bc != c && cn[n - 97] > 0) check = true;
			else cn[n - 97]++;
			bc = c;
		}

		if(!check)
			count++;
	}

	cout << count;
}

5
ab
aa
aca
ba
bb
4

✔ 25206번 너의 평점은

#include <iostream>

using namespace std;

int main()
{

	string name, rating;
	float sco;
	
	float sum =0;
	float sum2 =0;

	int max = 20;

	for (int i = 0; i < 20; i++)
	{
		cin >> name >> sco >> rating;

		float rsco =0;
		bool passCheck = false;

		switch (rating[0])
		{
			case 'A':
				rsco = 4;
			break;
			case 'B':
				rsco = 3;
			break;
			case 'C':
				rsco = 2;
			break;
			case 'D':
				rsco = 1;
			break;
			case 'P':
			{
				continue;
			}
			break;
		}
		if (rsco > 0)
		{
			if (rating[1] == '+')
				rsco += 0.5f;
		}
		sum += sco;
		sum2 += (sco*rsco);
	}

	cout << sum2 / sum;
}

0개의 댓글

관련 채용 정보