2week

유기태·2022년 10월 18일

GoormMondayChallenge

목록 보기
2/3

Git

풀이

1. 합격자 찾기

#include <iostream>
#include <vector>
using namespace std;
int t;
int n;
vector<float>person[1005];
int result[15];
void solve();
void solution();

void solve()
{

	for (int i = 0; i < t; i++)
	{
		float average = 0.f;
		for (int j = 0; j < person[i].size(); j++)
		{
			average += person[i][j];
		}
		average /= person[i].size();

		for (int j = 0; j < person[i].size(); j++)
		{
			if (person[i][j] >= average)
			{
				result[i]++;
			}
		}
	}
	solution();
}

void solution()
{
	for (int i = 0; i < t; i++)
	{
		cout << result[i] << '/' << person[i].size() << '\n';
	}
}

int main()
{
	cin >> t;

	for (int i = 0; i < t; i++)
	{
		cin >> n;
		for (int j = 0; j < n; j++)
		{
			int a;
			cin >> a;
			person[i].push_back(a);
		}
	}
	solve();
}

2. 철자 분리 집합

#include <iostream>
#include <string>
using namespace std;
void solve();
void solution();

string s;
int result;

void solve()
{
	char temp = '0';
	for (int i = 0; i < s.size(); i++)
	{
		if (temp != s[i])
		{
			temp = s[i];
			result++;
		}
	}

	solution();
}

void solution()
{
	cout << result;
}

int main()
{
	int n;
	cin >> n;
	cin >> s;

	solve();
}

3. 출석부

#include<iostream>
#include<algorithm>
#include<vector>
#include<string>
using namespace std;
void solve();
void solution();

pair<float, string>temp[10005];
pair<string,float>person[10005];

int N;
int k;

void solve()
{
	sort(temp, temp + N);

	for (int i = 0; i < N; i++)
	{
		person[i] = make_pair(temp[i].second, temp[i].first);
	}

	sort(person, person + N);

	solution();
}

void solution()
{
	cout << fixed;
	cout.precision(2);
	cout << person[k - 1].first <<' '<< person[k - 1].second;
}

int main()
{
	float height;
	string name;
	cin >> N >> k;
	for (int i = 0; i < N; i++)
	{
		cin >> name >> height;
		temp[i] = make_pair(height, name);
	}
	solve();
}

4. 폭탄 구현하기

#include <iostream>
using namespace std;

void solve();
void solution();

int dx[4] = { 0,0,1,-1 };
int dy[4] = { 1,-1,0,0 };

int n;
int k;
int result;
int map[25][25];

void solve()
{
	for (int i = 0; i < k; i++)
	{
		int a, b;
		cin >> a >> b;
		map[a - 1][b - 1] += 1;
		for (int dir = 0; dir < 4; dir++)
		{
			int nx = (a - 1) + dx[dir];
			int ny = (b - 1) + dy[dir];
			if (nx < 0 || ny < 0 || nx >= n || ny >= n)continue;
			map[nx][ny] += 1;
		}

	}

	for (int i = 0; i < n; i++)
		for (int j = 0; j < n; j++)
			result += map[i][j];

	solution();
}

void solution()
{
	cout << result;
}

int main()
{
	cin >> n;
	cin >> k;
	solve();
}
profile
게임프로그래머 지망!

0개의 댓글