로그인 성공?

Haizel·2023년 4월 18일
1

🧬 알고리즘 풀이

목록 보기
15/53
post-thumbnail

문제 설명

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

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

입출력 예

id_pwdbresult
["meosseugi", "1234"][["rardss", "123"], ["yyoom", "1234"], ["meosseugi", "1234"]]"login"
["programmer01", "15789"][["programmer02", "111111"], ["programmer00", "134"], ["programmer01", "1145"]]"wrong pw"
["rabbit04", "98761"][["jaja11", "98761"], ["krong0313", "29440"], ["rabbit00", "111333"]]"fail"

내 풀이

function solution(id_pw, db) {
    for (let i = 0; i < db.length; i++){
        if (id_pw[0] === db[i][0]) {
            if (id_pw[1] === db[i][1]) {
                return "login"
            }
            return "wrong pw"
        }
    }
    return "fail"
}

💡 코드풀이


  1. 아이디만 일치하는 경우 → login
  2. 아이디, 비번 모두 일치하는 경우 → wrong pw
  3. 그 외의 경우 → fail

Map 활용

function solution(id_pw, db) {
    const [id, pw] = id_pw;
    const map = new Map(db);
    console.log(map.get(id))
    return map.has(id) ? (map.get(id) === pw ? "login" : "wrong pw") : "fail";
}

💡 코드풀이


  1. id_pw에서 id와 pw를 구조분해할당으로 가져온다.
  2. db를 new Map을 통해 map 변수에 할당한다
 map = Map {'rardss' => '123', 'yyom' => '1234', 'messeugi' => '1234'}
  1. map 안에 id_pw에서 구조분해할당으로 가져온 id 값이 없으면(boolean값) -> fail
map.has(id) ? //boolean 값임
  1. 있을때 -> 해당 id를 get 했을 때 pw === 구조분해할당 pw가 같다면 -> login, 다르다면 wrong pw를 리턴한다.

💡 배울점


  • Map을 잘 활용하자
profile
한입 크기로 베어먹는 개발지식 🍰

0개의 댓글