🧩 Algorithm/[BOJ] Silver

BOJ 2581번 : μ†Œμˆ˜ (Python/Silver 5)

devCloud 2023. 2. 9. 18:26
728x90
 

2581번: μ†Œμˆ˜

M이상 Nμ΄ν•˜μ˜ μžμ—°μˆ˜ 쀑 μ†Œμˆ˜μΈ 것을 λͺ¨λ‘ μ°Ύμ•„ 첫째 쀄에 κ·Έ 합을, λ‘˜μ§Έ 쀄에 κ·Έ 쀑 μ΅œμ†Ÿκ°’μ„ 좜λ ₯ν•œλ‹€.  단, M이상 Nμ΄ν•˜μ˜ μžμ—°μˆ˜ 쀑 μ†Œμˆ˜κ°€ 없을 κ²½μš°λŠ” 첫째 쀄에 -1을 좜λ ₯ν•œλ‹€.

www.acmicpc.net

문제

μžμ—°μˆ˜ Mκ³Ό N이 μ£Όμ–΄μ§ˆ λ•Œ M이상 Nμ΄ν•˜μ˜ μžμ—°μˆ˜ 쀑 μ†Œμˆ˜μΈ 것을 λͺ¨λ‘ 골라 이듀 μ†Œμˆ˜μ˜ ν•©κ³Ό μ΅œμ†Ÿκ°’μ„ μ°ΎλŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. 예λ₯Ό λ“€μ–΄ M=60, N=100인 경우 60이상 100μ΄ν•˜μ˜ μžμ—°μˆ˜ 쀑 μ†Œμˆ˜λŠ” 61, 67, 71, 73, 79, 83, 89, 97 총 8κ°œκ°€ μžˆμœΌλ―€λ‘œ, 이듀 μ†Œμˆ˜μ˜ 합은 620이고, μ΅œμ†Ÿκ°’μ€ 61이 λœλ‹€.

 

μž…λ ₯

μž…λ ₯의 첫째 쀄에 M이, λ‘˜μ§Έ 쀄에 N이 μ£Όμ–΄μ§„λ‹€. Mκ³Ό N은 10,000μ΄ν•˜μ˜ μžμ—°μˆ˜μ΄λ©°, M은 N보닀 μž‘κ±°λ‚˜ κ°™λ‹€.

 

좜λ ₯

M이상 Nμ΄ν•˜μ˜ μžμ—°μˆ˜ 쀑 μ†Œμˆ˜μΈ 것을 λͺ¨λ‘ μ°Ύμ•„ 첫째 쀄에 κ·Έ 합을, λ‘˜μ§Έ 쀄에 κ·Έ 쀑 μ΅œμ†Ÿκ°’μ„ 좜λ ₯ν•œλ‹€.

단, M이상 Nμ΄ν•˜μ˜ μžμ—°μˆ˜ 쀑 μ†Œμˆ˜κ°€ 없을 κ²½μš°λŠ” 첫째 쀄에 -1을 좜λ ₯ν•œλ‹€.


예제 μž…λ ₯

60
100

예제 좜λ ₯

620
61

풀이

- μ£Όμ˜ν•  점 : IndexError, ValueError

Solution

M = int(input())
N = int(input())
l = []
for i in range(M, N+1): #μ†Œμˆ˜ κ΅¬ν•˜κΈ°
    for j in range(2, i):
        if i % j == 0:
            break
    else:
        l.append(i)
        
if not l: #λ¦¬μŠ€νŠΈκ°€ λΉ„μ–΄μžˆμ„ λ•Œ
    print(-1)
else:
    if l[0] == 1: #λ¦¬μŠ€νŠΈμ— 1이 μžˆμ„ 경우
        l.pop(0) #첫 번째 인덱슀 제거
        if not l: #μ œκ±°ν–ˆλŠ”λ° μΈλ±μŠ€κ°€ λΉ„μ–΄μžˆμ„ 경우
            print(-1)
        else:
            print(sum(l))
            print(min(l))
    else: 
        print(sum(l))
        print(min(l))

Another Solution

M = int(input())
N = int(input())
l = []

for i in range(M, N+1):
    if i == 1:
        pass
    elif i == 2:
        l.append(i)
    else:
        for j in range(2, i):
            if i % j == 0:
                break
        else:
            l.append(i)
if not l:
    print(-1)
else:
    print(sum(l))
    print(min(l))
μΆ”κ°€ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€
#Test Case
input : 1 1

output : -1
-
input : 1 3

output : 5 2
-
input : 7 8

output : 7 7​
728x90