프로그래머스 LV0. 로그인 성공?

꿈틀이·2023년 1월 4일
0

알고리즘 - 기초

목록 보기
2/21
def solution(id_pw, db):
    answer = ''
    result = 0
    for i in range(len(db)):
        if db[i][0] == id_pw[0]:
            if db[i][1]==id_pw[1]:
                answer = "login"
                return answer
            else:
                answer = "wrong pw"
                return answer
            
    answer = "fail"
    return answer

처음에는 플래그를 사용해서 접근하려 했다.
하지만 들여다보니 위에서 아래로 순차적으로 돌아간다는 사실을 고려하면 플래그가 필요 없는 문제였다. 이렇게 제출을 하였다

다른 분은 딕셔너리와 get이라는 함수를 사용하여 작성하였다

1. dictionary

딕셔너리라는 자료형이다.

키와 값의 쌍으로 이루어진 구조이다.

이때까지 흔히 쓰던 문자열, 리스트는 숫자로 된 인덱스를 통해 값을 접근하는 반면 딕셔너리는 키를 이용해 값에 접근한다는 차이점을 지녔다.

dic = {} #빈 딕셔너리 만들기
dic = {'a':'1', 'b':'2'}
dic = ['a'] #1

2. dictionary 가 가진 내장함수 get

get은 딕셔너리 객체가 가진 내장함수였다.

위의 코드에서 이어서 본다면,

dic.get('a') #1

get 함수는 인자를 key 값으로 받아 value를 return 한다

ans = dic.get('c', 'None') 
print(ans) #None

딕셔너리 속 그 값이 존재하지 않을 경우 두번째 인자를 저장한다

3. := 바다 코끼리 연산자

:= 이란 변수에 값을 대입하는 문법이라 한다

바다 코끼리 연산자라고 한다 그리고 보니까 닮아서 좀 꽤나 귀여운 것 같다! 🐘 뿌우

그런데 대입을 해주는 기능은 = 만으로도 충분한 것 아닌가?

왜 존재하는지에 대한 의문이 들었다.

바다 코끼리의 장점

  1. 조건문 안에서 선언하고 동시에 값을 대입할 수 있다
  2. 반복문 안에서도 리스트 안에서도 선언과 동시에 간결한 대입이 가능하다

음 할당과 반환이 동시에 이루어져서 재활용하기에? 가독성이 좋다는 생각이 들었다.
https://int-i.github.io/python/2020-05-29/python-walrus-operator/

y = f(x)
[y, y**2, y**3]

[y := f(x), y**2, y**3]

위의 코드가 동일한 의미를 지닌다는 것에서 사용의 이유가 확 와닿았다!
위의 페이지를 보고 공부하였다 감사합니당

profile
안녕하세용🤓

0개의 댓글