
분할정복을 정복해보고자....* 백준에 있는 분할정복 문제 중 맨 위에 있던 문제이다! 정답률이 71%로 높은 편이었지만 분할정복 개념만 알고 응용력 0인 나에겐 다소 어려웠던 문제이다 ㅠㅠ 시간이 조금 걸렸지만 풀어보니까 분할정복을 어떻게 접근해야 하는지 감이 조금씩 오는 것 같다 ㅎㅎ 이 문제는 N으로 들어오는 값을 기준으로 NxN 배열이 같은 색이 아닌 경우 N//2 x N//2 를 반복해서 탐색하도록 구현했다. 시작점을 기준으로 N//2길이만큼 탐색하도록 하기 위해서 시작점이 되는 점들을 q에 넣어준 뒤, N//2길이만큼 탐색하도록 isColorPaper 함수를 구현했다. from collections import deque N = int(input()) # 1일때 파랑, 0일때 하양 BRD = ..

백준 bfs문제인 토마토! 1은 익은 토마토, 0은 익지 않은 토마토, -1은 비어있는 칸을 나타낸다. 4개월 전에 c++로 푼 코드와 오늘 python으로 푼 코드가 조금 다른 것 같아서 비교해보려고 한다. 1. Python코드 from collections import deque def bfs(): visited = [[0 for x in range(N)] for y in range(M)] q = deque() # BRD에서 1인 부분을 먼저 추가하기. # -1인 것의 개수 세기 Mcount = 0 for i in range(M): for j in range(N): if BRD[i][j] == 1: q.append((i,j)) elif BRD[i][j] == -1: Mcount += 1 count =..

이 문제는 큐 응용 문제이다 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다. 예를 들어 Queue에 4개의 문서(A B C..
- Total
- Today
- Yesterday
- BFS
- cs공부
- 알고리즘
- C++
- 코테
- IPv4
- 네트워크
- DP
- OS
- 다대다매핑
- intellij
- 5397
- 완전탐색
- 소셜로그인
- 인텔리제이
- 운영체제
- 4계층
- 프로그래머스
- 동적프로그래밍
- allauth
- 백준
- SQL
- 코딩테스트
- dfs
- cs
- SQLD
- 파이썬
- Python
- Network
- 브루트포스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |