주니어 기초 코딩공부/JAVA_programmers_코딩테스트

로그인 성공?_programmers_lev00

jju_developer 2022. 12. 20. 00:35
728x90

<코딩 테스트>

문제 설명
머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 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

 

728x90