반응형
https://www.acmicpc.net/problem/1969
구현 문제였습니다.
풀이방법
1. 입력을 모두 받으면 N행 M열의 형태로 문자열들이 저장되게 됩니다.
2. 열 단위로 세로로 보면서 가장 많이 나왔고 그것이 여러개라면 그 중 가장 앞의 알파벳을 찾습니다. 최다 빈도의 알파벳을 출력할 문자열 정답 변수 minWord뒤에 붙여주고 최다 빈도의 알파벳을 제외한 다른 알파벳들의 빈도 수들을 모두 ans변수에 더해줍니다.
3. 정답을 출력합니다.
Code
#include <bits/stdc++.h>
using namespace std;
string minWord;
int n, length, sum;
vector <string> DNA;
int main(){
cin >> n >> length;
for(int i = 0; i < n; i++){
string s;
cin >> s;
DNA.push_back(s);
}
for(int i = 0; i < length; i++){
int alphaCnt[26] = {0};
int big = 0;
char maxAlpha;
for(int j = 0; j < n; j++){
alphaCnt[DNA[j][i] - 'A']++;
big = max(big,alphaCnt[DNA[j][i] - 'A']);
}
for(int k = 0; k < 26; k++){
if(alphaCnt[k] == big){
minWord += k + 'A';
maxAlpha = k + 'A';
break;
}
}
for(int k = 0; k < 26; k++){
if(k + 'A' != maxAlpha) sum += alphaCnt[k];
}
}
cout << minWord << '\n' << sum << '\n';
}
'Algorithm > String' 카테고리의 다른 글
(C++) - 백준(BOJ) 21734번 : SMUPC의 등장 (0) | 2021.07.25 |
---|---|
(C++) - 프로그래머스(2021 카카오 채용연계형 인턴십) : 숫자 문자열과 영단어 (0) | 2021.07.16 |
(C++) - 백준(BOJ) 12904번 : A와 B (0) | 2021.05.27 |
(Javascript) - 프로그래머스(2019 카카오 개발자 겨울 인턴십) : 튜플 (0) | 2021.05.07 |
(Javascript) - 프로그래머스(2018 KAKAO BLIND RECRUITMENT[3차]) : n진수 게임 (0) | 2021.05.04 |