[프로그래머스] 로그인 성공?

당당·2023년 4월 27일
0

프로그래머스

목록 보기
55/245

https://school.programmers.co.kr/learn/courses/30/lessons/120883

📔문제

머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.

  • 아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다.
  • 로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를, 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다.

🚫제한사항

회원들의 아이디는 문자열입니다.
회원들의 아이디는 알파벳 소문자와 숫자로만 이루어져 있습니다.
회원들의 패스워드는 숫자로 구성된 문자열입니다.
회원들의 비밀번호는 같을 수 있지만 아이디는 같을 수 없습니다.
id_pw의 길이는 2입니다.
id_pw와 db의 원소는 [아이디, 패스워드] 형태입니다.
1 ≤ 아이디의 길이 ≤ 15
1 ≤ 비밀번호의 길이 ≤ 6
1 ≤ db의 길이 ≤ 10
db의 원소의 길이는 2입니다.


📝입출력 예

id_pwdbresult
["meosseugi", "1234"][["rardss", "123"], ["yyoom", "1234"], ["meosseugi", "1234"]]"login"
["programmer01", "15789"][["programmer02", "111111"], ["programmer00", "134"], ["programmer01", "1145"]]"wrong pw"
["rabbit04", "98761"][["jaja11", "98761"], ["krong0313", "29440"], ["rabbit00", "111333"]]"fail"

📝입출력 예 설명

입출력 예 #1

db에 같은 정보의 계정이 있으므로 "login"을 return합니다.


입출력 예 #2

db에 아이디는 같지만 패스워드가 다른 계정이 있으므로 "wrong pw"를 return합니다.


입출력 예 #3

db에 아이디가 맞는 계정이 없으므로 "fail"을 return합니다.


🧮알고리즘 분류

  • 배열
  • 정렬
  • 문자열

📃소스 코드

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(answer.equals("")){
                    answer="fail";
                }
            }
            else{//일치함!
                if(!db[i][1].equals(id_pw[1])){//아이디만 일치하고 비밀번호 틀림
                    answer="wrong pw";
                }
                else{
                    answer="login";
                    break;
                }
            }
        }
        return answer;
    }
}

📰출력 결과


📂고찰

테스트케이스 1번만 틀려서 질문게시판을 살펴보던 중, 테스트 4번의 반례가 있었다. "id1"만 맞고, 패스워드는 틀리니 그다음 for문을 도는데, 거기서 "wrong pw"였던 것이 "fail"로 바뀌는 것이다.

그래서 만약 answer=""일 때만, answer="fail"로 줬다.

어차피 login이 되면 바로 break할 테니까!

profile
MySQL DBA 신입 지원

0개의 댓글