코딩테스트/프로그래머스

[Lv.0] 로그인 성공?

민톨이 2024. 8. 11. 03:50
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