문제
https://school.programmers.co.kr/learn/courses/30/lessons/118666?language=javascript
푸는 데 걸린 시간
5시간
코드
function solution(survey, choices) {
var answer = '';
var arr = { R : 0, T : 0, C : 0, F : 0, J : 0, M : 0, A : 0, N : 0 };
for (let i=0; i < survey.length; i++) {
if(choices[i] < 4) {
arr[survey[i].slice(0,1)] += 4 - choices[i];
} else if(choices[i] > 4) {
arr[survey[i].slice(1,2)] += choices[i] - 4;
}
}
for(let j = 1; j <= Object.keys(arr).length; j+=2) {
if (Object.values(arr)[j-1] > arr[Object.values(arr)[j]]) {
answer += Object.keys(arr)[j-1];
} else if (Object.values(arr)[j-1] < Object.values(arr)[j]){
answer += Object.keys(arr)[j];
} else { // 동점. 알파벳 순
if(Object.keys(arr)[j-1] < Object.keys(arr)[j]) {
answer += Object.keys(arr)[j-1];
} else {
answer += Object.keys(arr)[j];
}
}
}
return answer;
}
후기
일단 문제 읽는데 1시간 걸렸다.
문제가 이해가 잘 안돼서 엄청 애 먹었다.
그리고 3시간은 코드 작성하는 데 걸렸는데 나와의 싸움이었다.
코드를 작성하면서도 '이렇게 하면 될 거 같긴한데 너무 어렵게 짜는 거 같은데?' 라는 생각이 들어서 썼다 지웠다하면서 좀 더 단순하게 짤 수 있을 거 같은데...를 반복해서 코드가 길진 않은 데 오래 걸렸다.
코딩테스트는 어쨌든 간결하고 단순하게 짤 수록 좋으니까 길고 복잡하게 짜고 싶지 않았는 데 해결하고 나서 구글링해보니 내 코드도 좋은 코드는 아니다.
나머지 시간은 테스트 통과가 안돼서 헤매는 시간이었는데 알고보니 내가 문제 이해를 잘못 한 거였다.
그러니까 그냥 문제 이해를 못해서 시간을 엄청 잡아먹었다....
(점수를 1,2,3/3,2,1 이렇게 부여하려면 4를 빼줘야되는 데 4를 안 빼줘서 그런 거 였음)
'프로그래머스' 카테고리의 다른 글
[Javascript] 프로그래머스 같은 숫자는 싫어 (0) | 2022.09.04 |
---|---|
[Javascript] 프로그래머스 신고 결과 받기 (0) | 2022.09.04 |
코딩테스트 하는 이유 (with 프로그래머스) (0) | 2022.09.02 |