python 으로 BFS 문제 풀기 우선 코드부터 보고 아래에 설명을 하겠다. 어느 정도 이해도가 있는사람은 윗부분 핵심만 보면된다. 코드 작성 전에 import로 collections를 불러오자. 그 이유는 알고리즘/queue 부분 참고. import collentions han-py.tistory.com/31 Queue문제를 python으로 접근하는 세가지 방법 0. 들어가면서 queue의 기본개념은 다음을 참고하자. han-py.tistory.com/29 Queue 큐(Queue) - 선형큐 - 원형큐 - 연결큐 - 우선순위큐 기본적으로 앞부분은 개념 설명을 진행합니다. 초반부는 개념부분이라 han-py.tistory.com 아래의 여러개의 코드를 비교해보자. 코드 설명은 한참 아래에 있다. 기본 ..
문제의 저작권은 SW Expert Academy에 있습니다. 파이썬 SW문제해결 기본 - Queue 문제 N개의 피자를 동시에 구울 수 있는 화덕이 있다. 피자는 치즈가 모두 녹으면 화덕에서 꺼낸다. 1번부터 M번까지 M개의 피자를 순서대로 화덕에 넣을 때, 치즈의 양에 따라 녹는 시간이 다르기 때문에 꺼내지는 순서는 바뀔 수 있다. 주어진 조건에 따라 피자를 구울 때, 화덕에 가장 마지막까지 남아있는 피자 번호를 알아내는 프로그램을 작성하시오. 해설 Queue 자체 라이브러리 보다 deque를 쓰는게 빠르다. 그러니 bfs 풀때는 deque를 아래 처럼 쓰자. 사실 지금 풀이는 여러수정을 거쳐서 좀 복잡하게 만들었다. 다음에 다시 풀어서 올리겠다. 우리가 구해야 하는것은 남은 치즈의 양이 아닌 피자의 ..
0. 들어가면서 queue의 기본개념은 다음을 참고하자. han-py.tistory.com/29 Queue 큐(Queue) - 선형큐 - 원형큐 - 연결큐 - 우선순위큐 기본적으로 앞부분은 개념 설명을 진행합니다. 초반부는 개념부분이라 상관없지만 C나 java쓰시는 분들은 linked list를 쓰는데 여기선 python이라 쓰 han-py.tistory.com 세가지 방법 append와 pop을 이용한다. rear과 front를 이용한다. Queue 라이브러리 이용한다. append와 pop 이용 그냥 쉽게 말해서 python의 list 매소드를을 이용하는것이다. 문제에 맞게 넣을 때는 append를 이용하고 뺄 때는 pop을 이용한다. rear과 front 이용 이 부분은 리스트의 크기를 정해 놓고 ..
문제의 저작권은 SW Expert Academy에 있습니다. import collections TC = int(input()) for tc in range(1, TC+1): N, M = map(int, input().split()) data = list(map(int, input().split())) deq = collections.deque() for i in data: deq.append(i) while M > 0: a = deq.popleft() deq.append(a) M -= 1 print("#%d %d"%(tc, deq[0])) Queue의 매우 기본 문제다 이때 포인트는 파이썬에서는 deque를 활용해야 좀더 빠르게 풀 수 있다. queue라이브러리 같은 경우는 쓰래드 같은 복잡한 경우도 포..
큐(Queue) - 선형큐 - 원형큐 - 연결큐 - 우선순위큐 기본적으로 앞부분은 개념 설명을 진행합니다. 초반부는 개념부분이라 상관없지만 C나 java쓰시는 분들은 linked list를 쓰는데 여기선 python이라 쓰지 않습니다 대략적인 개념만 이해하고 (빠르게 쭉 읽자.) 실전 개념으로 넘어가면 됩니다 삼성역량평가 기준으로 A, A+은 python으로는 덱 쓰면 됩니다. 삽입, 삭제의 위치가 제한적인 자료구조 큐 뒤: 삽입 / 큐 앞: 삭제(꺼내쓴거다.) 선입선출구조(FIFO: First in First Out) 큐에 삽입한 순서대로 원소가 저장 가장 먼저 삽입(First In)된 원소는 가장 먼저 삭제(First Out)됨 후입선출인 stack과 비교된다고 할 수 있다. 예: 맛집가면 줄선 순서..
baekjoon 1926번 그림 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 def div(x, y): global sol2 deq = collections.deque() visited[y][x] = 1 deq.append((y, x)) while deq: y, x = deq.popleft() sol2 += 1 for i in range(4): nx = dx[i] + x ny = dy[i] + y if not(0
4880. sw expert academy 토너먼트 카드게임 문제의 저작권은 SW Expert Academy에 있습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 def sol(st, en): selection = [st, en] solve = [[0], [0, 0, 1, 0], [0, 0, 0, 1], [0, 1, 0, 0]] res = solve[data[st]][data[en]] return selection[res] def div(start, end): if start == end: return start st = div(start, (start+end)//2) en = div((start+end)//2 + 1, end) return sol(st,..
- Total
- Today
- Yesterday
- pandas
- UserCreationForm
- Queue
- TensorFlow
- logout
- login
- JavaScript
- Express
- 자료구조
- next.config.js
- django
- useHistory 안됨
- DFS
- nodejs
- react
- typescript
- 클라우데라
- nextjs autoFocus
- react autoFocus
- vuejs
- Python
- Vue
- Deque
- read_csv
- NextJS
- mongoDB
- useState
- BFS
- 자연어처리
- error:0308010C:digital envelope routines::unsupported
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |