[BFS적용]라인 코딩테스트 5번 문제풀이

 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
c = 11
b = 2
c_v = 1
t = 0
brown = [b]
answer = 0
loop = True
while loop:
    if c == b:
        answer = t
        break
    else:
        c += c_v
        c_v += 1
        t += 1
        q = brown[:]
        while q:
            curr = q.pop(0)
            brown.pop(0)
            for i in [curr-1, curr+1, 2*curr]:
                if i == c:
                    answer = t
                    loop = False
                    q.clear()
                    break
                elif i < c:
                    brown.append(i)
                elif i > c:
                    break
        if len(brown) == 0:
            answer = -1
            break
print(answer)

댓글

이 블로그의 인기 게시물

[python]섬의 둘레구하기

백트래킹으로 부분집합구하기(Get Powerset usiing Backtracking)

[Python]DFS를 이용한 부분집합 구현