프로그래머스-로그인 성공?(파이썬, python)

SA Jung·2022년 10월 6일
0

Programmers 문제 풀이

목록 보기
11/14

문제 링크

GitHub 링크

1. for문을 이용한 단순 비교

# for문을 통한 비교
def solution(id_pw, db):
    for i in db:
        # id 여부 확인
        if id_pw[0] in i:
            if id_pw[1] == i[1]:
                return "login"
            else:
                return "wrong pw"
    return "fail"
  • for문을 통해 db안에 data를 차례로 꺼내면서 id_pw의 id가 들어있는지 여부를 확인한다.
  • id_pw의 id가 있다면 pw를 비교하여 맞다면 "login"을 return하고, 틀리다면 "fail"을 return한다.
  • id_pw의 id가 없다면 아무것도 하지 않고 다음 data를 비교하며 끝까지 data에 id가 없다면 "fail"을 return한다.

2. Hash를 이용한 dict 비교 풀이

# id를 key값으로 pw를 value값으로 dict로 만들어서 비교
def solution(id_pw, db):
    db_dict = {i[0]: i[1] for i in db}
    # id 가 있을 때
    if id_pw[0] in db_dict:
        if id_pw[1] == db_dict[id_pw[0]]:
            return "login"
        else:
            return "wrong pw"
    # id가 없을 때
    else:
        return "fail"
  • 위의 1번 풀이와 비교 방식은 비슷하나 첫번째에 for문을 통해 dict를 id를 key값으로, pw를 value값으로 dict를 만들어서 id_pw의 id가 dict에 key값으로 존재하는지 여부를 판단한다.
  • 선조건으로 dict를 만드는 부분이 같은 for문을 쓰긴하지만 data가 많아지고 비교해야할 id와 pw가 많을 경우에는 단순 key값의 존재여부로 판단할 수 있기 때문에 더 효율적으로 보인다.
profile
Tomorrow will be better than yesterday :)

0개의 댓글