Coding Test/Java Coding Test
[프로그래머스 / 자바] - 로그인 성공?
by nam_ji
2024. 9. 21.
로그인 성공? - LV.0
문제
- 문자열 배열 id_pw와 2차원 문자열 배열 db가 매개변수로 주어집니다.
- 머쓱이는 프로그래머스에 로그인하려고 합니다.
- 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때,
- 다음과 같이 로그인 성공, 실패에 따른 메시지를 출력하는 문제입니다.
- 아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 출력.
- 로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를,
- 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 출력
테스트 (인텔리제이)
- 우선 id와 pw를 분리해서 각각 변수에 담아줍니다.
- db의 크기만큼 반복하는 for문을 만들고
- if문으로 db의 id와 pw가 모두 일치하는 조건으로 일치하면 answer에 login 문자열을 담아줍니다.
- 여기서 break가 없으면 다음 else if문의 조건도 확인하고 일치하면 answer의 값이 변할 수 있기 때문에 break를 걸어줍니다.
- 다음 else if문은 id만 일치할 경우 answer에 worng pw 문자열을 담아주고 break를 걸어줍니다.
- 마지막 else문에는 위 조건 모두 일치하지 않기 때문에 answer에 fail을 담아주면 됩니다.
package com.namji.codingtest.unsuccess;
public class 로그인_성공 {
public static void main(String[] args) {
/*
문자열 배열 id_pw와 2차원 문자열 배열 db가 매개변수로 주어집니다.
머쓱이는 프로그래머스에 로그인하려고 합니다.
머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와
회원들의 정보가 담긴 2차원 배열 db가 주어질 때,
다음과 같이 로그인 성공, 실패에 따른 메시지를 출력하는 문제입니다.
- 아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 출력.
- 로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를,
아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 출력
입출력 예
id_pw
["meosseugi", "1234"]
["programmer01", "15789"]
["rabbit04", "98761"]
db
[["rardss", "123"], ["yyoom", "1234"], ["meosseugi", "1234"]]
[["programmer02", "111111"], ["programmer00", "134"], ["programmer01", "1145"]]
[["jaja11", "98761"], ["krong0313", "29440"], ["rabbit00", "111333"]]
result
"login"
"wrong pw"
"fail"
입출력 설명
#1
db에 같은 정보의 계정이 있으므로 "login"을 return합니다.
#2
db에 아이디는 같지만 패스워드가 다른 계정이 있으므로 "wrong pw"를 return합니다.
#3
db에 아이디가 맞는 계정이 없으므로 "fail"을 return합니다.
*/
String[] id_pw = {"meosseugi", "12345"};
String[][] db = {{"rardss", "123"}, {"yyoom", "1234"}, {"meosseugi", "1234"}};
String answer = "";
String id = id_pw[0];
String pw = id_pw[1];
for (String[] data : db) {
if (id.equals(data[0]) && pw.equals(data[1])) {
answer = "login";
break;
} else if (id.equals(data[0])) {
answer = "wrong pw";
break;
} else {
answer = "fail";
}
}
System.out.println(answer);
}
}
프로그래머스 코드
class Solution {
public String solution(String[] id_pw, String[][] db) {
String answer = "";
String id = id_pw[0];
String pw = id_pw[1];
for (String[] data : db) {
if (id.equals(data[0]) && pw.equals(data[1])) {
answer = "login";
break;
} else if (id.equals(data[0])) {
answer = "wrong pw";
break;
} else {
answer = "fail";
}
}
return answer;
}
}