https://school.programmers.co.kr/learn/courses/30/lessons/120883#
[ 문제 설명 ]
머쓱이는 프로그래머스에 로그인하려고 합니다.
머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때,
다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.
아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다.
로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를,
아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다.
[ 문제 풀이 ]
첫번째 풀이
function solution(id_pw, db) {
// 두 새배열 find() 둘다 true면 login
let matchID = db.find((item) => item[0] === id_pw[0]);
if (matchID && matchID[1] == id_pw[1]) {
return "login";
} //id false면 fail
else if (!matchID) {
return "fail";
} //pw false면 wrong pw
return "wrong pw";
}
1. matchID = db.find((item) => item[0] === id_pw[0]) : db배열에서 id_pw의 id와 동일한 값을 가진 배열을 찾습니다.
2. if (matchID && matchID[1] == id_pw[1]) : matchID값이 true고, matchID[1]인 pw와 id_pw[1]인 pw 값이 동일한 값(true)이면 login 반환,
3. !matchID : 아이디부터 일치 하지 않으면 fail 반환
4. 위의 조건이 다 아니면 wrong pw 반환
두번째 풀이(정돈)
function solution(id_pw, db) {
let matchID = db.find((item) => item[0] === id_pw[0]); // 아이디가 일치하는 회원 정보 찾기
if (matchID) {
// 아이디가 일치하는 회원 정보가 있는 경우
if (matchID[1] === id_pw[1]) {
// 비밀번호까지 일치하는 경우
return "login";
} else {
// 비밀번호가 일치하지 않는 경우
return "wrong pw";
}
} else {
// 아이디가 일치하는 회원 정보가 없는 경우
return "fail";
}
}
'프론트엔드로 가는 길 > 프로그래머스' 카테고리의 다른 글
48. 컨트롤 제트 (0) | 2023.04.25 |
---|---|
47. 캐릭터의 좌표 (0) | 2023.04.24 |
45. 특이한 정렬 (1) | 2023.04.20 |
44. 문자열밀기 (1) | 2023.04.19 |
43.등수매기기 (0) | 2023.04.19 |