728x90
📋 문제
머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.
아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다.
로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를, 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다.
📋 입출력 예시

📋 풀이
class Solution {
public String solution(String[] id_pw, String[][] db) {
//id, pw 쪼개기
String id = id_pw[0];
String pw = id_pw[1];
for(int i=0;i<db.length;i++){
//db - id/pw 쪼개기
String dbId = db[i][0];
String dbPw = db[i][1];
//.equals() 사용
// 아이디가 일치하는지 확인
if (id.equals(dbId)) {
// 비밀번호가 일치하는지 확인
if (pw.equals(dbPw)) {
return "login"; // 아이디와 비밀번호가 모두 일치하면 "login" 반환
} else {
return "wrong pw"; // 아이디는 맞지만 비밀번호가 틀리면 "wrong pw" 반환
}
}
}
return "fail";
}
}
(2차원 배열 쉽지 않다... 거의 자료 참고하고 공부용으로 제출한 수준)
일단 id_pw (1차원배열)에서는 값이 [id, pw]이렇게 나옴 => 이걸 index로 나눠버리고 변수에 각각 담아주자
String id, String pw생성
일단 for문을 생성하고 int i를 인덱스로 사용하여 2차원 배열 변수도 생성해준다.
db배열을 쪼개버리는 것이다.

출력값이 이런 [id,pw]와 같은 형태이다.
1. db[i][0]:
- db 배열: db는 2차원 배열로, 각 행(db[i])은 [id, pw] 형식의 1차원 배열로 구성되어 있음
- i: i는 for 루프에서 현재 참조하고 있는 행의 인덱스입니다. db 배열의 i번째 행을 나타냄
- db[i][0]: db[i]는 db 배열의 i번째 행을 의미하며, [id, pw] 배열입니다. 여기서 db[i][0]은 해당 행에서 첫 번째 요소, 즉 id를 의미
2. db[i][1]:
- db[i][1]: 마찬가지로 db[i][1]은 db 배열의 i번째 행에서 두 번째 요소, 즉 pw를 의미
이렇게 정리할 수 있겠다.
그리고 각 String을 .equals()로 일치하는지 확인하기
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [Lv.1] 정수 제곱근 판별 (0) | 2024.08.11 |
|---|---|
| [Lv.0] 각도기 (0) | 2024.08.11 |
| [Lv.1] 음양 더하기 (0) | 2024.08.08 |
| [Lv.1]2021카카오 : 숫자 문자열과 영단어 (0) | 2024.08.08 |
| [Lv.0] 1로 만들기 (0) | 2024.08.08 |