일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 파이썬
- 정보처리기사 실기
- dfs
- 코딩테스트
- 2022년 정보처리기사 실기
- 알고리즘
- 코딩
- 백준
- 백준 그래프 탐색 파이썬
- it
- BFS
- 백준 백트랙킹
- 프로그래머스 파이썬
- 백준 백트랙킹 파이썬
- 정보처리기사 실기 시험
- BOJ
- 자료구조
- 2022년 정보처리기사 실기 가답안
- 그리디
- 코드
- 프로그래밍
- 자바
- 백준 N-Queens
- 토마토
- 정보처리기사
- 2022년 정보처리기사 실기 1회 가답안
- python
- 백준 토마토 파이썬
- 백준 그래프 이론 파이썬
- 프로그래머스
- Today
- Total
목록알고리즘 (5)
코딩,안되면 될때까지
백준 알고리즘을 본격적으로 풀기 시작한지도 벌써 2개월이란 시간이 흘렀다. 사실 전공이 데이터사이언스라 대학생시절에도 알게모르게 백준을 접했다. 다시 말해 백준 문제를 풀기 시작한건 훨씬 오래전이지만 다시 본격적으로 푼건 올해 2월말 부터였다. 오랜만에 다시 풀다보니 처음엔 감을 잡기 어려웠지만 그래도 예전에 했던 경험을 기반으로 꾸준히 하다보니 어느새 GOLD5레벨에 도달했다. 그래서 이 글에서는 공부방법과 문제를 풀때의 마음가짐에 대해서 작성하려고 한다. https://solved.ac/profile/hae_sooo solved.ac 알고리즘 문제해결 학습의 이정표 🚩 Baekjoon Online Judge 난이도 및 티어 정보 제공 solved.ac -어려운 문제를 만났을때- 코딩 문제를 풀때 문제..
0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0 0 0 : 구멍이 존재하는 부분 ->상하좌우로 서로 연걸 1 : 칸막이가 존재하는 부분 N*M크기의 얼음 틀이 주어졌을때 총 아이스크림의 개수를 구하는 프로그램을 작성하시오. 위와 같은 4*5크기의 얼음틀이 주어졌을 경우 총 3개의 아이스크림이 생성된다. 특정지점의 주변 상,하,좌,우를 살펴본뒤 주변지점중에서 값이'0'이면서 아직 방문하지 않은 지점이 있다면 방문한다.(0->1) 방문한 지점에서 다시 상,하,좌,우를 살펴보면서 방문을 다시 진행하면서 연결된 모든 지점 방문(재귀적으로 dfs 호출) 만약 방문 불가능한 지점일 경우이거나 이미 방문한 경우 함수의 반환결과는 False, 그렇지 않으면 함수의 반환결과는 True이다. 방문가능한..
1)DFS :Depth-First Search, 깊이우선탐색,그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 탐색 시작노드를 스택에 삽입하고 방문처리를 한다. 스택의 최상단 노드에 방문하지 않은 인접노드가 있으면 그 인접노드를 스택에 넣고 방문처리를 한다. 방문하지 않은 인접노드가 없으면 스택에서 최상단 노드를 꺼낸다. 위의 과정을 더이상 수행할수 없을때까지 방문한다. #DFS 메서드의 정의 def dfs(graph,v, visited): #현재 노드를 방문 처리 visited[v]=True print(v,end=' ') #현재 노드와 연결된 다른 노드를 재귀적으로 방문 for i in graph[v]: if not visited[i]: dfs(graph,i,visited) #각 노드가 연결된 정보를..
: 이진탐색을 쉽게 구현할수 있도록 bisect 라이브러리 제공 bisect_left(a,x) : 정렬된 리스트 a에서 x가 들어갈 가장 왼쪽 인덱스 반환 bisect_right(a,x) : 정렬된 리스트 a에서 x가 들어갈 가장 오른쪽 인덱스 반환 from bisect import bisect_left,bisect_right #값이 [left_value,right_value]인 데이터의 개수를 반환하는 함수 def count_by_range(a,left_value,right_value): right_index = bisect_right(a,right_value) left_index = bosect_left(a,left_value) return right_index - left_index #정렬된 리스트..
heapq : heapq.heappush() : 힙에 원소를 삽입 heapq.heappop() : 힙에서 원소를 추출 우선순위 큐를 구현하고자 할때 사용 (우선순위 큐 : 들어온 순서에 상관없이 원소에 우선순위를 부여해 그 우선순위가 높은 순서대로 원소를 추출하는 큐) -파이썬- import heapq def heapsort(iterable): h=[] result = [] #모든 원소를 차례대로 힙에 삽입 for value in iterable: heapq.heappush(h,value) #최대힙 구현->-value #힙에 삽입된 모든 원소를 차례대로 꺼내어 담기 for i in range(len(h)): result.append(heapq.heappop(h)) #최대힙->-heapq.heappop(h..