코딩테스트
뇌주름 살리기 - 20
라퐁
2025. 2. 6. 22:56
등수 매기기
영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score
가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요.
function solution(score) {
//기존 인덱스와 평균을 가진 배열로 바꾸고 평균을 기준으로 정렬
let scoreSort = score.map(function (x, idx) {
return [idx, (x[0] + x[1]) / 2]
}).sort((x, y) => y[1] - x[1]);
let answer = new Array(score.length);
let rank = 1;
let rankDup = 0;
for(let i = 0; i < scoreSort.length - 1; i++) {
answer[scoreSort[i][0]] = rank;
//중복되면 중복카운트만 올리고,
//다음 숫자가 달라지면 중복카운트도 같이 더하기
if(scoreSort[i][1] === scoreSort[i + 1][1]) {
rankDup += 1;
} else {
rank += 1 + rankDup;
rankDup = 0;
}
}
answer[scoreSort[scoreSort.length - 1][0]] = rank;
return answer;
}
옹알이 (1)
머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling
이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
function solution(babbling) {
//네 가지 발음을 공백으로 치환하고,
//남아있는게 없다면 발음할 수 있는 단어
return babbling.map((x) => x.replaceAll(/(aya)|(ye)|(woo)|(ma)/g, '')).filter((x) => x === '').length;
}
로그인 성공?
머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw
와 회원들의 정보가 담긴 2차원 배열 db
가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.
- 아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다.
- 로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를, 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다.
function solution(id_pw, db) {
let answer = {};
//객체로 만들기
for(let i of db) {
answer[i[0]] = i[1];
}
return answer[id_pw[0]] === id_pw[1] ? 'login' : answer[id_pw[0]] === undefined ? 'fail' : 'wrong pw';
}