Python/알고리즘 문제 풀이

[코테] 나누어 떨어지는 숫자 배열

마이구미+ 2023. 6. 20. 08:35

 

프로그래머스

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

programmers.co.kr

<로직 고민/>

  • 아 너무 쉬운 방법밖에 안 떠오르는데..
  • arr를 for문에 돌려서 하나씩 divisor랑 %로 연산해서 0 나오면 answer 배열에 넣어주고 아니면 말고
  • for문 다 돌고 answer가 빈 리스트면 -1 넣어주고
  • 그 다음엔 sorted(answer)나 answer.sort() 해주고 그럼 끝 아닌가...?

<완성된 코드/>

def solution(arr, divisor):
    answer = []
    for num in arr:
        if num % divisor == 0:
            answer.append(num)
    if answer == []:
        answer.append(-1)
    answer.sort()
    return answer

<다른 사람 풀이/>

- 천재풀이1

def solution(arr, divisor): return sorted([n for n in arr if n%divisor == 0]) or [-1]
  • 이게 뭐여...
  • 9줄을 1줄로 만드네...

- 인간풀이2

def solution(arr, divisor):
    answer = []

    for i in arr:
        if i % divisor == 0:
            answer.append(i)

    if not answer:
        answer = [-1]

    answer.sort()        
    return answer
  • 나랑 방식은 똑같은데 8번째 줄이 if not answer 여서 가져와봤다
  • 이렇게도 쓸 수 있군...!!