Post

[Programmers] #120883 - 로그인 성공? [Java][C++][Python]

[Programmers] #120883 - 로그인 성공? [Java][C++][Python]

문제 링크


1. 아이디어

회원들의 정보가 담긴 2차원 배열 db가 주어졌을 때, 로그인 성공, 실패에 따라 다른 메시지를 반환하는 문제로 아이디가 같은 회원이 없으므로 각 db의 아이디에 대해 아이디가 일치하는지, 일치하면 비밀번호가 일치하는지로 분기 처리를 하면 된다. 아이디가 일치하는 경우가 없으면 "fail"을 반환했다.


2. 복잡도

접근시간공간
풀이$O(N)$$O(1)$

($N$ = db의 길이)


3. 코드

풀이 [Java][C++][Python]

1
2
3
4
5
6
7
8
9
10
class Solution {
    public String solution(String[] id_pw, String[][] db) {
        for (String[] row : db) {
            if (!id_pw[0].equals(row[0])) continue;
            return id_pw[1].equals(row[1]) ? "login" : "wrong pw";
        }

        return "fail";
    }
}
1
2
3
4
5
6
7
8
9
10
11
#include <bits/stdc++.h>
using namespace std;

string solution(vector<string> id_pw, vector<vector<string>> db) {
    for (auto& row : db) {
        if (id_pw[0] != row[0]) continue;
        return id_pw[1] == row[1] ? "login" : "wrong pw";
    }

    return "fail";
}
1
2
3
4
5
6
7
8
def solution(id_pw, db):
    for uid, upw in db:
        if id_pw[0] != uid:
            continue

        return "login" if id_pw[1] == upw else "wrong pw"

    return "fail"

This post is licensed under CC BY 4.0 by the author.