<코딩 테스트>
문제 설명
머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.
아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다.
로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를, 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다.
<나의 풀이 과정>
1.아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다.
2. 로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를,
3. 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다.
우선 deepEqyals 했을때 완전히 동일한 idpw는 "login"으로 처리후,
나머지 아이디만 맞지만 비밀번호는 틀릴때,
마지막으로 두곳에도 해당되지 않을때 fail을 리턴 하도록 구현하였습니다.
<나의 풀이 코드>
import java.util.Arrays;
class Solution {
public String solution(String[] id_pw, String[][] db) {
String answer = "";
for (int i = 0; i < db.length; i++) {
if (Arrays.deepEquals(db[i], id_pw)) {
answer = "login";
} else if (id_pw[0].equals(db[i][0])) {
if (!id_pw[1].equals(db[i][1])) {
answer = "wrong pw";
}
}
}
if (answer == "")
{
answer = "fail";
}
return answer;
}
}
<다른 사람 풀이>
class Solution {
public String solution(String[] id_pw, String[][] db) {
String answer = "";
for(int i = 0; i < db.length; i++){
if(db[i][0].equals(id_pw[0])){
if(db[i][1].equals(id_pw[1])){
return "login";
}
return "wrong pw";
}
}
return "fail";
}
}
<다른 사람 풀이>
class Solution {
public String solution(String[] id_pw, String[][] db) {
boolean id = false;
boolean pw = false;
for (String[] item : db) {
if (item[0].equals(id_pw[0]) && item[1].equals(id_pw[1])) {
return "login";
}
if (item[0].equals(id_pw[0])) {
id = true;
continue;
}
}
return id ? "wrong pw" : "fail";
}
}
https://school.programmers.co.kr/learn/courses/30/lessons/120913
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'주니어 기초 코딩공부 > JAVA_programmers_코딩테스트' 카테고리의 다른 글
치킨 쿠폰_programmers_lev00 (0) | 2022.12.20 |
---|---|
문자열 밀기_programmers_lev00 (0) | 2022.12.20 |
캐릭터의 좌표_programmers_lev00 (0) | 2022.12.20 |
외계어 사전_programmers_lev00 (0) | 2022.12.17 |
컨트롤 제트_programmers_lev00 (0) | 2022.12.17 |