728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
이 문제는 주어지는 입력값을 판단해 조건에 맞도록 값을 출력해주면 된다.
지표는 총 4개인데 4개가 모두 동일하게 판단되므로 하나의 예를 들자면, "RT"라는 성격 유형을 검사할 경우, 7가지의 선택지에 따라 rt의 값이 변하게 된다. 이 때, 선택지는
- 매우 비동의 (-3)
- 비동의 (-2)
- 약간 비동의 (-1)
- 모르겠음 (0)
- 약간 동의 (1)
- 동의 (2)
- 매우 동의 (3)
로 되어있으므로, 각각의 선택지에 맞는 값을 찾아 더해주면 된다. 만약 "RT" 대신 "TR"이 입력값일 경우, 값이 정반대로 들어가야 하므로 주의하자.
정답 코드
C++
#include <string>
#include <vector>
using namespace std;
string solution(vector<string> survey, vector<int> choices) {
string answer = "";
int rt = 0, cf = 0, jm = 0, an = 0;
for (int i = 0; i < survey.size(); i++) {
if (survey[i] == "AN") an += choices[i] - 4;
else if (survey[i] == "NA") an -= (choices[i] - 4);
else if (survey[i] == "RT") rt += (choices[i] - 4);
else if (survey[i] == "TR") rt -= (choices[i] - 4);
else if (survey[i] == "CF") cf += (choices[i] - 4);
else if (survey[i] == "FC") cf -= (choices[i] - 4);
else if (survey[i] == "JM") jm += (choices[i] - 4);
else if (survey[i] == "MJ") jm -= (choices[i] - 4);
}
(rt > 0) ? answer += "T" : answer += "R";
(cf > 0) ? answer += "F" : answer += "C";
(jm > 0) ? answer += "M" : answer += "J";
(an > 0) ? answer += "N" : answer += "A";
return answer;
}
python
def solution(survey, choices):
answer = ''
rt, cf, jm, an = 0, 0, 0, 0
for i in range(len(survey)) :
if (survey[i] == "AN") :
an += choices[i] - 4
elif (survey[i] == "NA") :
an -= (choices[i] - 4)
elif (survey[i] == "RT") :
rt += (choices[i] - 4)
elif (survey[i] == "TR") :
rt -= (choices[i] - 4)
elif (survey[i] == "CF") :
cf += (choices[i] - 4)
elif (survey[i] == "FC") :
cf -= (choices[i] - 4)
elif (survey[i] == "JM") :
jm += (choices[i] - 4)
else :
jm -= (choices[i] - 4)
answer += "T" if rt > 0 else "R"
answer += "F" if cf > 0 else "C"
answer += "M" if jm > 0 else "J"
answer += "N" if an > 0 else "A"
return answer
728x90
'Algorithm > PS' 카테고리의 다른 글
[C++, python] 프로그래머스 - 둘만의 암호 (0) | 2023.02.26 |
---|---|
[C++, python] 프로그래머스 - 햄버거 만들기 (0) | 2023.02.26 |
[C++, python] 프로그래머스 - 카드 뭉치 (0) | 2023.02.26 |
[C++, python] 프로그래머스 - 문자열 나누기 (0) | 2023.02.26 |
[C++, python] 프로그래머스 - 옹알이 (2) (0) | 2023.02.25 |