본문 바로가기
반응형

Study86

[Python] 파이썬에서 이진 탐색(binary search)하기 - bisect 이진 탐색(binary search)이진 탐색은 정렬된 데이터에서 특정 값을 찾아내는 알고리즘이다.  bisect 모듈파이썬에서는 이진 탐색 알고리즘을 기반으로 작동하는 bisect 모듈을 제공한다.bisect 모듈을 통해 직접 이진 탐색 알고리즘을 구현하지 않고 원하는 원소를 찾을 수 있다. bisect 모듈에서 제공하는 기능- 원하는 원소 찾기- 삽입 위치 찾기- 범위 검색 주요 함수 bisect.bisect_left(a, x, lo=0, hi=len(a)): 정렬된 리스트 a에서 값 x보다 크거나 같은 가장 왼쪽 인덱스를 반환한다.bisect.bisect_right(a, x, lo=0, hi=len(a)): 정렬된 리스트 a에서 값 x보다 큰 가장 왼쪽 인덱스를 반환한다.bisect.insort_l.. 2024. 5. 16.
[백준] #2206. 벽 부수고 이동하기 (python) - 파이썬 풀이 (BFS) 문제https://www.acmicpc.net/problem/2206 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다.만약에 이동하는 도중에 한 개의 벽을 부수고 이동하는 것이 좀 더 경로가 짧아진다면, 벽을 한 개 까지 부수고 이동하여도 된다.한 칸에서 이동할 수 있는 칸은 상하좌우로 인접한 칸이다.맵이 주어졌을 때, 최단 경로를 구해 내는 프로그램을 작성하시오. 입력첫째 줄에 N(1 ≤ N ≤ 1,000), M(.. 2024. 5. 5.
[Python] 파이썬에서 리스트 뒤집기 - reverse(), reversed(), slicing Python에서 리스트 뒤집기파이썬을 한다면 리스트는 필수적으로 사용할 것이다. 그 중 리스트의 요소들을 뒤집는 작업이 필요한 상황이 있다.그렇다면 어떤 방법으로 리스트를 뒤집을 수 있을까?리스트를 뒤집을 때 사용하는 방법은 주로 3가지가 있다.- reverse()- reversed()- 슬라이싱 reverse() : 원본 리스트가 필요 없는 경우reverse() 함수는 리스트 객체 자체를 뒤집는 함수다.만약 원본 리스트가 필요없고 리스트 객체를 직접 변경해야 한다면 reverse 함수가 적합하다.reverse() 함수는 리스트가 아닌 다른 자료형에는 사용할 수 없다.list = [1, 2, 3, 4, 5]list.reverse()print(list) # Output: [5, 4, 3, 2, 1]  r.. 2024. 5. 1.
[백준] #1987. 알파벳 (python) - 파이썬 풀이 (DFS) 문제https://www.acmicpc.net/problem/1987 1987번: 알파벳세로 $R$칸, 가로 $C$칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 ($1$행 $1$열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의www.acmicpc.net 문제세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다.말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 지날 수 없다.좌측 .. 2024. 4. 25.
반응형