알고리즘 풀이

[algorithm] 페어 - 프로그래머스: 로그인 성공?, n의 배수 고르기

째깍단 2023. 4. 25. 10:31

답: 

더보기

 로그인 성공

#for문을 2번 쓰는 문제가 있지만 새로운 방식이라서 기록
def solution(id_pw, db):
    for i in db:
        if i == id_pw:
            return "login"
    for i in db:
        if i[1] != id_pw[1]:
            return "wrong pw"
        else:
            return 'fail'

 

 

 n의 배수 고르기

def solution(n, numlist):
    for num in numlist:
        if num % n == 0:
            answer.append(num)
    return answer

 

 -> 한 줄의 마법..

def solution(n, numlist):
    answer = [num for num in numlist if num % n == 0]
    return answer

 

 

> 로그인 성공?의 풀이는 아래에

https://diane073.tistory.com/75

 

 

 

> 이 글에는 n의 배수 고르기 풀이를 작성한다.

 

문제 분석 및 해석

 

정수 n, 정수 numlist가 주어짐 

numlist에서 n의 배수가 아닌 수를 제거하여 return

 

입력 :

n = 3 

numlist = [4, 5, 6, 7, 8, 9, 10, 11, 12]    

 

출력 : [6, 9, 12]

 

 

 

1) 내가 생각한 풀이 :

 n에 숫자를 곱해서 같은 것 가져오기?

 

2) 풀이방법을 다시 생각해보자

 더 간단한 풀이 방법이 있다! n으로 나누어서 검사해보기

 

 

 

 

 

- 과정 -

 

나누어서 나머지가 0 이면 배수임을 확인할 수 있다.

if문을 통과한 답을 answer에 추가해준다.

 

for num in numlist:
    if num % n == 0:
        answer.append(num)

 

 

간단하니까 리스트 컴프리헨션을 써서 한줄로 만들어보기.

 

answer = [num for num in numlist if num % n == 0]

 

answer = [얻고자하는값 변수 / 상위에 있는 for문  /  if 문  ] 

 

 

 


 

오... 오..

짧은 시간안에 여러 방면의 발상을 할 수 있었으면 좋겠다

= 많이 풀자..ㅋㅋㅋ