하… 런타임 에러가 왜 발생하는 거냐 도대체… Python3로 제출을 했던건 그래 내 잘못이 맞아. 하지만 Python2에서 런타임 에러는 좀 아니지;



백준을 하면 할수록 자괴감이 들지만 언젠간…나아지겠지 싶다. 아니 나아져야 한다.

일단 터미널에서 파이썬을 실행시켰을 땐 정말 멀정하게 동작한다. 아마 런타임 에러가 아니었어도 분명 예외는 어딘가 있었겠지만 일단 런타임 에러만 좀 고쳐보고 싶다.


런타임 에러는 고쳤는데 이번엔 틀렸단다. 핳


이번엔 맞은 것 같은데 시간이 초과란다. 핳


맞았다!!!


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# initializing
init = input()
init = init.split()                                                     
N = int(init[0]) # max room size
Q = int(init[1]) # number of repeat
state_room = {}                                                         
for n in range(N) :
    state_room[n] = -1
room = 0
                                                                        
# [0]roomPeople [1]roomSize [2]roomL [3]roomR
assignRoom = []                                                         
                                                                        
for i in range(Q) :
    command = input()
    command_parsing = command.split()                                   
    X = int(command_parsing[1])
    Y = int(command_parsing[2])
                                                                        
    if X > 2147483647 :
        X = 2147483647
                                                                        
    if command_parsing[0] == "new" :
        sum = 0
        for x in range(room) :
            sum += assignRoom[x][1]
        sum += Y
        if sum > N :
            print("REJECTED")
            continue
                                                                        
        check_point = 0
        count = 0
        for x in range(N) :
            if state_room[x] == -1 :
                if count == 0 :
                    check_point = x                                     
                count += 1
                if count == Y :
                    break
            else :
                check_point = -1
                count = 0
        if count != Y :
            print("REJECTED")
            continue
        if check_point == -1 :
            print("REJECTED")
            continue

        for x in range(check_point, check_point + Y) :
            state_room[x] = room                                        

        temp_x, temp_y = X, Y                                           
        temp = [temp_x, temp_y, check_point, check_point + Y - 1]
        assignRoom.append(temp)                                         
        print("%d %d" % (assignRoom[room][2]+1, assignRoom[room][3]+1))
        room += 1
        
    elif command_parsing[0] == "in" :
        if X > room :
            continue
        assignRoom[X-1][0] += Y
                                                                        
    elif command_parsing[0] == "out" :
        if X > room :
            continue
        assignRoom[X-1][0] -= Y
        if assignRoom[X-1][0] <= 0 :
            print("CLEAN %d %d" % (assignRoom[X-1][2]+1, assignRoom[X-1][3]+1))
            for x in range(assignRoom[X-1][2], assignRoom[X-1][3]+1) :
                state_room[x] = -1
            assignRoom[X-1][1] = 0
WRITTEN BY

배진오

소비적인 일보단 생산적인 일을 추구하며, 좋아하는 일을 잘하고 싶어합니다 :D
im@baejino.com