본문 바로가기
프론트엔드로 가는 길/프로그래머스

46. 로그인 성공

by woody-j 2023. 4. 21.

https://school.programmers.co.kr/learn/courses/30/lessons/120883#
[ 문제 설명 ]

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

머쓱이는 프로그래머스에 로그인하려고 합니다.
머쓱이가 입력한 아이디와 패스워드가 담긴 배열 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