자료구조를 배우고 나니까 풀 수 있는 문제들이 많아졌다. 싱기방기!!
강사님이 말씀하신 대로 자료구조 자체를 쓰는 건 어렵지 않은 것 같다.아마
관건은 어떤 자료구조를 쓸 지 결정하는 것!!
머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.
출처 : 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을 리턴해준다.
끝!