C#

[프로그래머스 힌트/답/해석] 로그인 성공?

Guk-blog 2024. 1. 30. 15:16
728x90
반응형

힌트

더보기

- db 배열 내에 로그인 시도하는 문자열이 존재 및 일치하면 로그인 상태를 리턴한다

- id가 존재하지 않으면 fail, password가 틀리면 wrong pw를 리턴한다

정답

더보기
public static string Solution65(string[] id_pw, string[,] db)
{
    LoginStatus loginStatus = LoginStatus.fail;
    for(int i=0; i< db.Length / db.GetLength(1); i++){
        if(id_pw[0] == db[i,0]){
            if(id_pw[1]== db[i,1]) loginStatus = LoginStatus.login;
            else loginStatus = LoginStatus.wrong_pw;
            break;
        }
    }
    return string.Concat(loginStatus).Replace('_',' ');
}
enum LoginStatus{
    fail,
    wrong_pw,
    login
}

해석

더보기

 

enum LoginStatus{
            fail,
            wrong_pw,
            login
        }

 로그인 상태를 enum LoginStatus로 만들어준다(겉멋)

LoginStatus loginStatus = LoginStatus.fail;

기본 status를 fail로 선언해준다 

for(int i=0; i< db.Length / db.GetLength(1); i++){

int i는 0부터  db.length(8)/ db.GetLength(2)보다 작을 때 반복한다

db.GetLength(1)는 db가 [["rardss", "123"], ["yyoom", "1234"], ["meosseugi", "1234"]] 이렇게 한 요소에 2개씩 들어가 있기에 2를 리턴하고 db.GetLength(0)을 하면 3을 리턴한다

GetLength(0) = 행(row)

GetLength(1) = 열(row)

if(id_pw[0] == db[i,0])

id_pw[0]과 db[i,0]은 id 문자열이며 일치할 때 if문 내부로 진입한다

if(id_pw[1]== db[i,1]) loginStatus = LoginStatus.login;

id_pw[1]과 db[i,1]은 password 문자열이며  일치할 때 login status로 변경해준다.

else loginStatus = LoginStatus.wrong_pw;

 패스워드가 일치하지 않는다면 wrong_pw를 리턴해준다

728x90
반응형