반응형

Prob


Approach

기본 문법


Code

if __name__ == "__main__" :
    x, y, w, h = map(int, input().split())
    if w - x <= x :
        dis_x = w - x
    else :
        dis_x = x

    if h - y <= y :
        dis_y = h - y
    else :
        dis_y = y

    if dis_x <= dis_y :
        print(dis_x)
    else:
        print(dis_y)

 

출처

https://www.acmicpc.net/problem/1085

반응형
블로그 이미지

Refrin

일상생활 끄적 IT 프로젝트 끄적

반응형

Prob


Approach

제한조건에 맞게 10000까지의 소수를 모두 구한다.

입력한 숫자의 절반부터 1씩 줄이며 소수인지 확인한다.

반대 숫자도 소수인지 확인한다.


Code

if __name__ == "__main__" :
    
    is_prime = [False, False] + [True] * ((10000) - 1)
    primes = []
    for i in range(2, 10000 + 1):
        if is_prime[i]:
            primes.append(i)
            for j in range(2 * i, 10000 + 1, i):
                is_prime[j] = False
    
    T = int(input())
    for i in range(T):
        num = int(input())
        for j in range(int(num / 2), 0, -1):
            if j in primes:
                if (num - j) in primes:
                    print("%d %d"%(j, num - j))
                    break

 

출처

https://www.acmicpc.net/problem/9020

반응형
블로그 이미지

Refrin

일상생활 끄적 IT 프로젝트 끄적

반응형

Prob


Approach

1은 소수가 아니다.

시간 초과가 관건. 그 때 그 때 구하는 식으로는 시간 초과를 해결할 수 없었다...

문제에 제한값을 사용해 미리 소수를 구하고 그 소수를 찾는 방법을 사용했다.


Code

if __name__ == "__main__" :
    
    is_prime = [False, False] + [True] * ((123456 * 2) - 1)
    primes = []
    for i in range(2, int((123456 * 2) + 1)):
        if is_prime[i]:
            primes.append(i)
            for j in range(2 * i, (123456 * 2) + 1, i):
                is_prime[j] = False
    num = int(input())
    while num != 0:
        m_cnt = 0
        for k in primes:
            if num < k <= num * 2:
                m_cnt += 1
            
        print(m_cnt)
        num = int(input())

 

출처

https://www.acmicpc.net/problem/4948

반응형
블로그 이미지

Refrin

일상생활 끄적 IT 프로젝트 끄적