Algorithm/Programmers
[Programmers] 코딩테스트입문 - 로그인 성공?
j4ko
2024. 4. 16. 23:33
728x90
반응형
목차
개요
https://school.programmers.co.kr/learn/courses/30/lessons/120883
1. 첫 번째 시도
문제에서 요구하는 조건에 따라 로그인에 성공하는 케이스를 구현한다. 입출력 예시를 보고 조건이 맞았을 때 빨리 Return 할 수 있는 조건을 우선으로 했다.
def solution(id_pw, db):
user_id, user_pw = id_pw[0], id_pw[1]
hmap = {}
for cred in db:
db_id, db_pw = cred[0], cred[1]
hmap[db_id] = db_pw
if user_id not in hmap.keys():
return "fail"
if user_id in hmap.keys():
if hmap[user_id] == user_pw:
return "login"
if user_id in hmap.keys():
if hmap[user_id] != user_pw:
return "wrong pw"
2. 두 번째 시도
"db"라는 파라미터는 2차원 배열이다. 이를 dict() 라는 built-in 함수로 사용하면 dictionary 타입으로 변환이 가능하다. 이 특징을 감안해 dictionary로 초기화하는 구문을 단순화 시켰다.
def solution(id_pw, db):
user_id, user_pw = id_pw[0], id_pw[1]
hmap = dict(db)
if user_id not in hmap.keys():
return "fail"
if user_id in hmap.keys():
if hmap[user_id] == user_pw:
return "login"
if user_id in hmap.keys():
if hmap[user_id] != user_pw:
return "wrong pw"
3. 세 번째 시도
조건이 같은 경우를 그룹화했다.
def solution(id_pw, db):
user_id, user_pw = id_pw[0], id_pw[1]
hmap = dict(db)
if user_id not in hmap.keys():
return "fail"
if user_id in hmap.keys():
if hmap[user_id] == user_pw:
return "login"
if hmap[user_id] != user_pw:
return "wrong pw"
728x90
반응형