https://school.programmers.co.kr/learn/courses/30/lessons/118666
[소스코드]
#include <string>
#include <vector>
using namespace std;
string solution(vector<string> survey, vector<int> choices) {
string answer = "";
char typeName[8]={'R','T','C','F','J','M','A','N'};
int typeScore[8]={0};
for(int i=0;i<survey.size();i++){
if (choices[i]==1) {
for(int j=0;j<8;j++){
if(typeName[j]==survey[i][0])
typeScore[j]+=3;
}
}
else if (choices[i]==2) {
for(int j=0;j<8;j++){
if(typeName[j]==survey[i][0])
typeScore[j]+=2;
}
}
else if (choices[i]==3) {
for(int j=0;j<8;j++){
if(typeName[j]==survey[i][0])
typeScore[j]+=1;
}
}
else if (choices[i]==5) {
for(int j=0;j<8;j++){
if(typeName[j]==survey[i][1])
typeScore[j]+=1;
}
}
else if (choices[i]==6) {
for(int j=0;j<8;j++){
if(typeName[j]==survey[i][1])
typeScore[j]+=2;
}
}
else if (choices[i]==7) {
for(int j=0;j<8;j++){
if(typeName[j]==survey[i][1])
typeScore[j]+=3;
}
}
}
answer += typeScore[0] >= typeScore[1] ? 'R' : 'T';
answer += typeScore[2] >= typeScore[3] ? 'C' : 'F';
answer += typeScore[4] >= typeScore[5] ? 'J' : 'M';
answer += typeScore[6] >= typeScore[7] ? 'A' : 'N';
return answer;
}
처음으로 풀어본 프로그래머스 코딩 테스트 문제입니다.
성격 유형을 저장한 char 배열과 점수를 저장한 int 배열을 만들어서 풀었습니다.
map을 사용한 적이 없어 위와 같이 무식하게 풀이해봤습니다.
map을 학습하고 사용한 풀이는 다음과 같습니다.
#include <string>
#include <vector>
#include <map>
using namespace std;
string solution(vector<string> survey, vector<int> choices) {
string answer = "";
map<char, int> typeScore;
int score[8] = {0,3,2,1,0,1,2,3};
for(int i=0;i<survey.size();i++){
typeScore[survey[i][choices[i]/4]]+=score[choices[i]];
}
answer += typeScore['R'] >= typeScore['T'] ? 'R' : 'T';
answer += typeScore['C'] >= typeScore['F'] ? 'C' : 'F';
answer += typeScore['J'] >= typeScore['M'] ? 'J' : 'M';
answer += typeScore['A'] >= typeScore['N'] ? 'A' : 'N';
return answer;
}
map의 사용법은 아래 링크를 참고해주세요
'학습 정리 > 👨💻 PS Study' 카테고리의 다른 글
[C++] 프로그래머스 - 공원 산책 (0) | 2023.06.12 |
---|---|
[C++] 프로그래머스 - 달리기 경주 (0) | 2023.05.19 |
[C++] 백준 11729번 - 하노이 탑 이동 순서 (0) | 2023.01.31 |
[C++] 백준 2108번 - 통계학 (0) | 2023.01.22 |
[C++] 백준 11650번 - 좌표 정렬하기 (0) | 2023.01.22 |