본문 바로가기

Algorithm/이것이 코딩 테스트다5

[ 파이썬(python) ] 이것이 코딩 테스트다 - 구간 합 계산(Prefix_sum) 📍 백준 11659 - 구간 합 구하기 4 백준 11659 - 구간 합 구하기4 ⚡️ 나의 풀이 이 문제를 그냥 구현한다면 시간 초과에서 벗어나지 못할 것이다. 바로 시간 복잡도가 높기 때문인데, 이럴 때 시간 복잡도를 낮출 적절한 알고리즘이 바로 prefix_sum이다. prefix_sum의 난이도는 어렵지 않다. 서두에서 말했듯이 이 문제를 prefix_sum을 사용하지 않고 구현할 때 N, M의 입력 범위가 100,000이 넘어간다면 시간 복잡도는 O(NM)이 되므로 1초 내에 구현할 수가 없다. 알고리즘을 설계할 때마다 고려해야 하는 점은 여러 번 사용될 만한 정보는 미리 구해서 저장해 놓을수록 유리하다. 구현 방법은 간단한데, 각각의 합들을 새로운 배열에 저장해뒀다가 나중에 입력에 구간이 들어오.. 2021. 4. 23.
[ 파이썬(python) ] 이것이 코딩 테스트다 - 개미전사(DP) 📍 이것이 코딩 테스트다 DP - 개미 전사 유튜브 - 동빈나(27:48) ⚡️ 나의 풀이 3개월 전에 풀었던 문제이지만, 어떻게 풀었는지 기억이 잘 안 나서 다시 풀어봤다. 문제를 풀어보면 알겠지만 boj_2579 - 계단 오르기와 비슷한 유형이다. 입력 부분에서 맨 앞에 0을 주고 싶었는데 그렇게 되면 입력받는 부분이 까다로워질 수 있어 처음부터 입력값을 주었다. 그러면 출력으로 n-1을 줘야 된다는 점을 잊지 말자! 풀이 영상을 보면서 동빈 나가 DP를 써야 하는 경우를 알려주셨는데 기억해야 하는 내용이다. 최적 부분: 특정 i번째까지 최적의 해를 구할 때 이전 값을 사용한다. 여기에서 제일 중요한 포인트는 개미가 식량창고를 털 때 두 가지의 케이스가 있다. 관점을 달리해서 뒤에서부터 살펴보자. 제.. 2021. 4. 23.
[ 파이썬(python) ] 이것이 코딩 테스트다 공부 1 ~ 39일차 정리내용 티스토리로 넘어오기 이전에 벨로그에서 이것이 코딩테스트다 서적을 하루도 빠짐없이 1일차에서 39일차까지 공부했었다. 정리내용은 다음 링크를 들어가서 참고해주세요! 링크: 0_velog 2021. 4. 18.
[ 파이썬(python) ] 이것이 코딩 테스트다 - 음료수 얼려먹기(DFS) 📌 이것이 코딩 테스트다 - 음료수 얼려먹기 영상 링크(42:48) 💡 나의 풀이 DFS로 문제를 해결 할 수 있는데, 0인 값이 상, 하, 좌, 우로 연결되어 있는 노드를 묶으면 된다. BFS, DFS는 조건 설정이 중요한 것 같다. 특정한 지점의 주변 상, 하, 좌, 우를 살펴보고 주변 지점 중 값이 0이면서 아직 방문하지 않은 지점이 있으면 해당 지점을 방문한다. 방문한 지점에서 다시 상, 하, 좌, 우를 살펴보면서 방문을 다시 진행하면, 연결된 모든 지점을 방문할 수 있다. 1~2번의 과정을 모든 노드에 반복하고, 방문하지 않은 지점의 수를 센다. ''' 4 5 00110 00011 11111 00000 ''' ''' 15 14 00000111100000 11111101111110 11011101.. 2021. 4. 15.
[ 파이썬(python) ] 이것이 코딩 테스트다 - 미로 탈출(BFS) 📌 이것이 코딩테스트다 - 미로 탈출 영상 링크(51:30) 💡 나의 풀이 BFS를 이용하는 흐름을 알아야 풀 수 있었는데, 그 흐름을 잘 몰라서 못 풀었다. 이전까지는 입력값을 그래프로 변환해서 풀었는데, 입력값이 이중 리스트일때는 어떻게 줘야 할지 감이 잘 잡히지 않았다. 또, BFS문제를 풀어보니까 값이 어떻게 바뀌는지 흐름을 잡는것이 중요하다고 느꼈다. from collections import deque n, m = map(int, input().split()) graph = [list(map(int, input())) for _ in range(n)] # 상하좌우 선언 dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def bfs(x, y): queue = deque() .. 2021. 4. 15.