프로그래머스 LV.0 로그인 성공?

2022. 11. 29. 21:44Python/Algorithm

728x90

오늘은 내배캠에서 알고리즘 타임어택을 했는데

총 4문제가 있었다.

4문제중 4문제를 다 풀긴 했는데

마지막 문제를 구글링하며 어떻게 풀어야 하는지 작성해놓고도 이해가 안가서 Thonny를 돌려보았다.

Thonny를 돌려보았더니 이해가 바로 갔는데 까먹을까봐

이를 기록해 남겨두고자 글을 쓰게되었다.

 

각도기

옷가게 할인받기

369게임

로그인 성공?

https://github.com/wth2052/algorithm_taehyeon

 

def solution(id_pw, db):
    answer = ''
    for i in db:
        if id_pw[0] in i:
            if id_pw[1] == i[1]:
                return 'login'
            else:
                return 'wrong pw'
    return 'fail'


solution(["meosseugi", "1234"],[["rardss", "123"], ["yyoom", "1234"], ["meosseugi", "1234"]])
solution(["programmer01", "15789"],[["programmer02", "111111"], ["programmer00", "134"], ["programmer01", "1145"]])
solution(["rabbit04", "98761"], [["jaja11", "98761"], ["krong0313", "29440"], ["rabbit00", "111333"]])

solution(["meosseugi", "1234"],[["rardss", "123"], ["yyoom", "1234"], ["meosseugi", "1234"]])

첫번째 바퀴

for문은 i를 변수로 db 범위만큼 도는데 

이때 id_pw[0]번째 요소(meosseugi)가 i = ['rardss', '123] 안에 없으므로 False.

 

두번째 바퀴

id_pw[0]번째 요소(meosseugi)가 i = ['yyoom', '1234'] 안에 없으므로 False.

 

세번째 바퀴

id_pw[0]번째 요소(meosseugi)가 i = ['meosseugi', '1234']에 있으므로 True.

다음 if문으로 들어가 id_pw[1]번째 요소 (1234)와 현재 for문에 들어가있는 i의 [1]번째 요소 (1234)를 비교한다.

True 이므로 'login' 메시지를 return 한다.

 

solution(["programmer01", "15789"],[["programmer02", "111111"], ["programmer00", "134"], ["programmer01", "1145"]])

첫번째 바퀴

for문은 i를 변수로 db 범위만큼 도는데 

이때 id_pw[0]번째 요소(programmer01)가 i = ['programmer02', '111111'] 안에 없으므로 False.

 

두번째 바퀴

id_pw[0]번째 요소(programmer01)가 i = ['programmer00', '134'] 안에 없으므로 False.

 

세번째 바퀴

id_pw[0]번째 요소(programmer01)가 i = ['programmer01', '1145']에 있으므로 True.

다음 if문으로 넘어가 id_pw[1]번째 요소 (15789)와 현재 for문에 들어가있는 i의 [1]번째 요소 (1145)를 비교한다.

False 이므로 else문으로 넘어가 'wrong pw' 메시지를 return 한다.

 

첫번째 바퀴

for문은 i를 변수로 db 범위만큼 도는데 

이때 id_pw[0]번째 요소(programmer01)가 i = ['programmer02', '111111'] 안에 없으므로 False.

 

두번째 바퀴

id_pw[0]번째 요소(programmer01)가 i = ['programmer00', '134'] 안에 없으므로 False.

 

세번째 바퀴

 

solution(["rabbit04", "98761"], [["jaja11", "98761"], ["krong0313", "29440"], ["rabbit00", "111333"]])

첫번째 바퀴

for문은 i를 변수로 db 범위만큼 도는데 

이때 id_pw[0]번째 요소(rabbit04)가 i = ['jaja11', '98761'] 안에 없으므로 False.

 

두번째 바퀴

id_pw[0]번째 요소(rabbit04)가 i = ['krong0313', '29440'] 안에 없으므로 False.

 

세번째 바퀴

id_pw[0]번째 요소(rabbit04)가 i = ['rabbit00', '111333'] 안에 없으므로 False.

이때 if, else 조건 어느것에도 해당하지 않으니 if문을 빠져나가 'fail' 값을 리턴후 종료된다.

 

 

쓰고나니 머릿속에 들어온다. 어떻게 풀렸는지... 역시 모든지 써봐야 아는거 같다.