이미지


코드 입력

    test = [num for num in range(1, 31)]
    
    for i in range(1, 29):
        input_num = int(input())
        test.remove(input_num)
    
    print(min(test))
    print(max(test))
 
input해야 하는 조건때문에 또 헷갈린 문제다.
 
input하는 대상을 randint로 1~30 이하 중에 while 문으로도 만들어봤는데,
 
왜인지 자꾸 런타임 에러가 발생했다. 이유를 모르겠어서
 
구글링을 해서 정답 로직을 대략적으로 찾아냈다.
 
로직 자체가 어려운 것이 아니어서, 왜 내가 시도했던 코드가 안 되는 것인지 아는 것이 중요할 것 같은데,
 
이유를 모르겠다..
 
    # 원래 시도했던 코드 (런타임 에러 발생)
    test = []
    
    while True:
        a = random.randint(1, 30)
        if a not in test:
            test.append(a)
            if len(test) == 28:
                break
        else:
            continue
    
    for i in range(1, 31):
        if i in test:
           test.remove(i)
    
    print(min(test))

🔗 백준 Online Judge (opens in a new tab)