import java.util.HashMap;
class Solution {
public String solution(String[] id_pw, String[][] db) {
HashMap<String, String> loginTable = new HashMap<>();
loginTable.put(id_pw[0], id_pw[1]);
String result = "fail";
for (String[] candidate : db) {
String id = candidate[0];
if (loginTable.get(id) == null) result = "fail";
else if (loginTable.get(id).equals(candidate[1])) {
result = "login";
break;
}
else {
result = "wrong pw";
break;
}
}
return result;
}
}
입력받는 id, pw 값이 하나라 HashMap
을 이용하지 않아도 되지만 사용해보았다 🤣
db 배열을 돌며 해당 id의 값이 loginTable에 없는 경우 null이 반환되어 해당 회원이 없음을 알 수 있고
get()
을 통해 id의 value값인 pw값을 받아와 db의 pw 값과 비교하여 로그인 성공, 실패여부를 출력하였다.
처음에 break를 설정하지 않아 다음 배열을 돌며 result 값이 덮어 씌어져 실패하였는데 break문이나 if문의 구성을 이중 if문으로 변경하는 방식으로 해결 가능했다.