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