본문 바로가기

Python(알고리즘,문제풀이)/프로그래머스(코딩기초트레이닝)

코딩기초트레이닝 / 배열 만들기 2

728x90

📚문제

출처 : 프로그래머스(https://school.programmers.co.kr/learn/courses/30/lessons/181921)

 

📝풀이

def solution(l, r):
    answer = []
    for num in range(l, r+1):
        if set(str(num)) - {'0','5'} == set():
            answer.append(num)
    return answer if answer else [-1]

구글링하여 아래의 코드를 참고하였는데

더보기
def solution(l, r):
    answer = []
    for num in range(l, r+1):
        if not set(str(num)) - {'0','5'}:
            answer.append(num)
    return answer if answer else [-1]

출처 : https://velog.io/@kpo12345/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%ED%8C%8C%EC%9D%B4%EC%8D%AC-e69pf3j9

if not 구문이 익숙하지가 않아서 내가 편한 코드로 변경해주었다

 

그리고 또 하나 얻은 개념

if else 삼항연산자에서 condition 자리에 answer만 작성할 경우

i) answer가 값이 있으면(none을 반환하지 않으면)  => True로 간주 => answer를 return

ii) answer가 값이 없으면(none을 반환하면) => False로 간주 => [-1]을 return

코드를 더 간결하게 작성할 수 있다 알아두자

 

728x90