본문 바로가기

백준

백준1296 - 데이트

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

 

1296번: 데이트

첫째 줄에 오민식의 영어 이름이 주어진다. 둘째 줄에는 좋아하는 여자가 몇 명인지 N이 주어지고, 셋째 줄부터 N개의 줄에 여자의 이름이 하나 씩 주어진다. N은 50보다 작거나 같고, 모든 이름을 알파벳 대문자로만 구성되어 있고 모두 길어야 20글자이다.

www.acmicpc.net

단순히 입력받은 문자에서 L, O, V, E의 갯수를 센 후 사랑 구하기 공식에 적용하면 되는 문제였다.

남자의 L, O, V, E의 갯수를 센 후 새로운 여자의 L, O, V, E의 값을 더하여 공식에 적용한다.

결과값이 같다면 여자의 이름에서 부등호를 이용하여 앞에 있는 글자가 빠른 경우를 저장하게 하였다.

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

int main() {
	string ans; //정답
	string oh; //남자이름
	string girl; //여자이름
	int omat[4] = { 0, }; //남자이름에서 LOVE찾기, 0번지 : L, 1번지 : O, 2번지 : V, 3번지 : E
	int gmat[4] = { 0, }; //여자이름에서 LOVE찾기, 0번지 : L, 1번지 : O, 2번지 : V, 3번지 : E
	int L, O, V, E; // L의 갯수, O의 갯수, V의 갯수, E의 갯수
	int big = -1; //mod100 중 가장 큰 값을 저장할 공간
	int n; //입력할 횟수
	int check; //mod100을 한 결과

	//남자 이름 입력받은 후 L, O, V, E 찾기
	cin >> oh;
	for (int i = 0; i < oh.size(); i++) {
		if (oh[i] == 'L') {
			omat[0]++;
		}
		else if (oh[i] == 'O') {
			omat[1]++;
		}
		else if (oh[i] == 'V') {
			omat[2]++;
		}
		else if (oh[i] == 'E') {
			omat[3]++;
		}
	}

	cin >> n;

	//여자 이름 입력받은 후 L, O, V, E 찾기
	while (n--) {
		cin >> girl;
		for (int i = 0; i < girl.size(); i++) {
			if (girl[i] == 'L') {
				gmat[0]++;
			}
			else if (girl[i] == 'O') {
				gmat[1]++;
			}
			else if (girl[i] == 'V') {
				gmat[2]++;
			}
			else if (girl[i] == 'E') {
				gmat[3]++;
			}
		}

		//L, O, V, E의 횟수 찾기
		L = omat[0] + gmat[0];
		O = omat[1] + gmat[1];
		V = omat[2] + gmat[2];
		E = omat[3] + gmat[3];

		//사랑 구하기 공식에 적용하기
		check = (L + O) * (L + V) * (L + E) * (O + V) * (O + E) * (V + E);
		check = check % 100;

		//사랑 구하기 공식에 결과값을 비교
		if (big < check) { //현재 계산한 결과가 크면 갱신
			big = check;
			ans = girl;
		}
		else if (big == check) { //현재 계산한 결과와 이전에 계산한 결과가 같으면
			if (ans > girl) { //이름순으로 비교 후 앞에 있는 이름이면 
				ans = girl; //앞에 이름을 답으로 지정
			}
		}
		memset(gmat, 0, sizeof(gmat)); //여자 L, O, V, E 결과 초기화
	}
	cout << ans;
}

'백준' 카테고리의 다른 글

백준1371 - 가장 많은 글자  (0) 2019.07.15
백준1431 - 시리얼 번호  (0) 2019.07.15
백준1956 - 운동  (0) 2019.07.08
백준4963 - 섬의 개수  (0) 2019.07.07
백준1966 - 프린터 큐  (0) 2019.07.06