문제출처: https://www.acmicpc.net/problem/1296
풀이
간단한 문자열문제입니다. c언어스타일로 오민식이름에서 L,O,V,E의 갯수 + 입력받는 여자의 이름의 L,O,V,E의 갯수를 합하여 계산값이 가장 크면서 사전순으로 앞에있는 여자의 이름을 출력하면 됩니다. 저는 string으로 풀었습니다. string으로 풀 때는 모두 입력받고 정렬 시킨뒤 계산하는게 편합니다.
코드
#include<iostream> #include<algorithm> #include<string> using namespace std; int max_value = -1; string arr[50]; int main() { int n; //L,O,V,E string a; cin >> a >> n; int index = 0; for (int i = 0; i < n; i++) { cin >> arr[i]; } sort(arr, arr + n); for(int i=0;i<n;i++) { string temp = ""; int l=0, o=0, v=0, e=0; temp = a + arr[i]; for (int i = 0; i < temp.size(); i++) { if (temp[i] == 'L') l++; else if (temp[i] == 'O') o++; else if (temp[i] == 'V') v++; else if (temp[i] == 'E') e++; } if (max_value < ((l + o) * (l + v) * (l + e) * (o + v) * (o + e) * (v + e)) % 100) { max_value = ((l + o) * (l + v) * (l + e) * (o + v) * (o + e) * (v + e))%100; index = i; } } cout << arr[index]<<endl; }
결과
'문제풀이(BOJ) > 문자열' 카테고리의 다른 글
[백준 1543] 문서 검색 (0) | 2020.01.14 |
---|---|
[백준 8892] 팰린드롬 (0) | 2020.01.10 |
[백준 11008] 복붙의 달인 (0) | 2020.01.10 |
[백준 12780] 원피스 (0) | 2020.01.10 |
[백준 2535] 아시아 정보올림피아드(클래스 연습) (0) | 2020.01.06 |