본문 바로가기

Coding Test/Programmers

[프로그래머스/JavaScript] 코딩 테스트 풀이 (문제 80 - 로그인 성공?)

728x90

 

# 문제

머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.

아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다.
로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를, 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다.



# 답안

// 1. 입력: 배열 id_pw, 2차원 배열 db
// 2. 출력: 전부 일치-> login, 아디만 일치 -> wrong pw, 전부 불일치 -> fail
// some 함수 사용해서 
// db.some(user[0]===id_pw[0] && user[1]===id_pw[1]) 이면 login
// db.some(user[0]===id_pw[0] && user[1]!==id_pw[1]) 이면 wrong pw
// db.some(user[0]!==id_pw[0] && user[1]!==id_pw[1]) 이면 fail

function solution(id_pw, db) {
 if (db.some(user=> user[0]===id_pw[0] && user[1]===id_pw[1])){
     return "login"
 }else if(db.some(user=> user[0]===id_pw[0] && user[1]!==id_pw[1])){
     return "wrong pw"
 }else if(db.some(user=> user[0]!==id_pw[0] && user[1]!==id_pw[1])){
     return "fail"
 }
}



# 인사이트

// some() 함수는 조건을 만족하는 요소가 발견되면 즉시 실행을 중단하고 true를 반환한다. 만약 배열을 끝까지 순회했는데도 조건을 만족하는 요소를 찾지 못하면 false를 반환한다.
728x90