[코테 풀이] 로그인 성공?

시내·2023년 12월 15일
0

자료구조를 배우고 나니까 풀 수 있는 문제들이 많아졌다. 싱기방기!!
강사님이 말씀하신 대로 자료구조 자체를 쓰는 건 어렵지 않은 것 같다. 아마
관건은 어떤 자료구조를 쓸 지 결정하는 것!!

Q) 로그인 성공?

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

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


출처 : https://school.programmers.co.kr/learn/courses/30/lessons/120883

import java.util.*;

class Solution {
    public String solution(String[] id_pw, String[][] db) {
        Map<String, String> users = new HashMap<>();
        for (int i = 0; i < db.length; i++) {
            users.put(db[i][0], db[i][1]);
        }

        String answer="fail";
        for(String id : users.keySet()){
            if(id.equals(id_pw[0])){
                if(users.get(id).equals(id_pw[1])){
                    answer = "login";
                    break;
                }
                else{
                    answer = "wrong pw";
                    break;
                }
            }
        }
        return answer;
    }
}

1) 보자마자 해시맵을 id와 pw를 matching해줄 수 있는 해시맵을 떠올렸다.

2) 일단 db에 있는 id를 key로, pw를 value로 설정해서 넣어준다.

3) id_pw배열과 비교를 하면서 key도 있고 value도 일치할 경우, login을, key는 있지만 value가 일치하지 않을 경우 wrong pw를, key도 존재하지 않을 땐 fail을 리턴해준다.

끝!

profile
contact 📨 ksw08215@gmail.com

0개의 댓글