코딩 연습/Python

[HackerRank] Between Two Sets

썬2 2022. 2. 12. 09:18

https://www.hackerrank.com/challenges/between-two-sets/problem?isFullScreen=true 

 

Between Two Sets | HackerRank

Find the number of integers that satisfies certain criteria relative to two sets.

www.hackerrank.com

 

 

위 문제를 푸는데 난 아래와 같은 솔루션을 만들었다. 

def getTotalX(a, b):
    # Write your code here
    cnt = 0
    for i in range(a[-1], b[0]+1):
        flag = 1
        for j in range(len(a)):
            if i%a[j] != 0:
                flag = 0
                break
            else:
                for k in range(len(b)):
                    if b[k]%i != 0:
                        flag = 0
                        break
            if flag == 0:
                break
        if flag == 1:
            cnt += 1
    return cnt

 

그런데 이렇게 간단히 쓸수 있더라..

def getTotalX(a, b):
    # Write your code here
    ans=0
    for i in range(a[-1], b[0]+1):
        if all(i%x==0 for x in a) and all(x%i==0 for x in b):
            ans+=1
    return ans

 

푸는 원리는 같은데, all()을 아냐 마나의 차이이다.

all을 안 쓰면 나처럼 flag만들어서 복잡하게 풀어야한다.

 

all과 any함수 잘 알아두자!