[프로그래머스 / 입문] 로그인 성공? (파이썬)

2022. 10. 2. 03:04·🎲 알고리즘 공부/프로그래머스

[문제 설명]

머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.

  • 아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다.
  • 로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를, 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다.

 

입출력 예시

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/120883

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 


🎨 풀이

💡 전체 코드

def solution(id_pw, db):
    answer = ''
    dic = {}
    for i in range(len(db)):
        dic[db[i][0]] = db[i][1]
    
    # 입력된 아이디가 dic 안에 키 값으로 있는 경우
    if id_pw[0] in dic :
        # 입력된 비밀번호가 해당 아이디의 비밀번호가 일치할 경우
        if id_pw[1] == dic[id_pw[0]]:
            answer = "login"
        else :
            answer = "wrong pw"
    else :
        answer = "fail"
    return answer

> 핵심 : dic 이용하기~

 

 

 

🍦 코드 설명 (실행 순서대로 나열)

#solution

    dic = {}
    for i in range(len(db)):
        dic[db[i][0]] = db[i][1]

1. 딕셔너리 dic을 만든다.

2. db에 있는 값을 이용해 dic에 키와 값을 넣어준다.

 - (ex) db = [["jaja11", "98761"], ["krong0313", "29440"], ["rabbit00", "111333"]]

    =>   dic = { 'jaja11' : '98761' , 'krong0313' : '29440' , 'rabbit00' : '111333'}

 

 

 

    # 입력된 아이디가 dic 안에 키 값으로 있는 경우
    if id_pw[0] in dic :
        # 입력된 비밀번호가 해당 아이디의 비밀번호가 일치할 경우
        if id_pw[1] == dic[id_pw[0]]:
            answer = "login"
        else :
            answer = "wrong pw"
    else :
        answer = "fail"
    return answer

3. 만약 id_pw[0]이 dic에 키 값으로 존재하고, id_pw[1]이 그 키의 값과 같다면 answer에 login을 넣는다.

 - (ex) id_pw[0] = "jaja11"  ,  dic = { 'jaja11' : '98761' , ... } 

     => dic[id_pw[0]] == dic['jaja11'] =>  '98761'

4. id_pw[0]이 딕셔너리에 존재하지만, id_pw[1]이 그 키 값과 일치하지 않는다면 answer에 wrong pw 를 넣는다.

5. id_pw[0]가 딕셔너리에 존재하지 않는다면, answer에 fail을 넣는다.   

 

6. answer을 return한다.


끝~

⭐ 느낀점

> db에 최대 10개가 들어가고, 머쓱이는 한명이라 입력값이 아이디 비밀번호 하나씩밖에 없어서 for문 돌리면서 천천히 봐도 됐을 거 같긴하다. 근데 그냥 딕셔너리 한 번 사용해보고 싶었다. ㅋㅋㅋㅋㅋ 잘 풀었담~ 고생했다!

저작자표시 (새창열림)

'🎲 알고리즘 공부 > 프로그래머스' 카테고리의 다른 글

[프로그래머스 / 입문] A로 B 만들기 (파이썬)  (0) 2022.10.06
[프로그래머스 / 입문] 배열의 유사도 (파이썬)  (0) 2022.10.04
[프로그래머스 / 입문] 세균 증식 (파이썬)  (0) 2022.10.01
[프로그래머스 / 입문] 모스부호 (1) (파이썬)  (2) 2022.09.30
[프로그래머스 / 입문] 배열 두 배 만들기 (파이썬)  (0) 2022.09.29
'🎲 알고리즘 공부/프로그래머스' 카테고리의 다른 글
  • [프로그래머스 / 입문] A로 B 만들기 (파이썬)
  • [프로그래머스 / 입문] 배열의 유사도 (파이썬)
  • [프로그래머스 / 입문] 세균 증식 (파이썬)
  • [프로그래머스 / 입문] 모스부호 (1) (파이썬)
듬듬
듬듬
  • 듬듬
    두드림
    듬듬
  • 전체
    오늘
    어제
    • 분류 전체보기 (267)
      • 📑 신입일기 (35)
      • 🎲 알고리즘 공부 (192)
        • 프로그래머스 (76)
        • 백준 (96)
        • 코드업 (19)
      • 📘 독서 (0)
      • 💌 일상 (12)
        • 일상 (5)
        • 기록 (7)
      • 📜 자격증 (2)
        • 정보처리기사 (2)
      • 학교 공부 (20)
        • ICT 개론 (14)
        • 리눅스 (6)
      • ChatGPT 랑 놀기 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    코테
    프로그래머스
    codeup
    연습문제
    코드업
    컨텐더스
    신입일기
    충무로
    오버워치
    코린이
    오블완
    백준
    BOJ
    찬양추천
    일기
    50문답
    코민이
    피보나치수
    til
    파이썬
    정보처리기사
    스프링 부트
    폰켓몬
    6월 목표
    카카오
    nodejs
    스프링부트
    행렬덧셈
    정처기
    티스토리챌린지
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
듬듬
[프로그래머스 / 입문] 로그인 성공? (파이썬)
상단으로

티스토리툴바