🌞코딩테스트/💜이것이코딩테스트다 [part2] 7

이것이코딩테스트다 | Ch09 최단 경로

Date | 2021.07.18 Review | 개념을 코드로 구현하는게 어려웠다. 실전문제는 다음에 응용문제를 풀 때 개념을 보고 풀어볼 예정이다. 1️⃣ 가장 빠른 길 찾기 # 최단 거리 알고리즘 ## 다익스트라 최단 경로 알고리즘 / 플로이드 워셜 / 벨만 포드 알고리즘 # 다익스트라 최단 경로 알고리즘 ## 다익스트라 최단 경로 알고리즘 / 플로이드 워셜 / 벨만 포드 알고리즘 1 - 출발 노드를 설정한다. 2 - 최단 거리 테이블을 초기화한다. 3 - 방문하지 않은 노드 중에서 최단 거리가 가장 짧은 노드를 선택한다. 4 - 해당 노드를 거쳐 다른 노드로 가는 비용을 계산하여 최단 거리 테이블을 갱신한다. 5 - 위 과정에서 3~4 반복한다. ### 9-01.py ### ### 다익스트라 알고리..

이것이코딩테스트다 | Ch08 다이나믹 프로그래밍

Date | 2021.07.17 Review | 다이나믹 프로그래밍 기법을 처음 접해봤는데 너무 간단하면서도 효율적인 것 같아서 좋았다. 다만 활용한 문제들의 난이도는 별로 좋지 않았다 ,, 마지막 화폐 구성하는 예제는 두고두고 봐야할 것 같다 어려받용ㄹ 1️⃣ 다이나믹 프로그래밍 # 다이나믹 프로그래밍 Dynammic Progrmming # 동적 계획법 ## 탑다운 / 보텀업 ### 8-01.py ### ### 피보나치 함수 소스코드 ### # 피보나치 함수 (Fibonacci Function)를 재귀 함수로 구현 def fibo(x): if x == 1 or x==2: return 1 return fibo(x-1)+fibo(x-2) print(fibo(4)) 탑다운방식 | 큰 문제를 해결하기 위해 작..

이것이코딩테스트다 | Ch07 이진 탐색

Date | 2021.07.16 Review | 개념 자체는 쉬운데, 이걸 응용해서 코테에 녹여내는게 정말 어려웠다. 특히 떡볶이 떡 자르는거는 너무 신박한 활용법이라 놀랐다. 이것도 두고두고 보면서 자주 상기시켜야할 것 같다,, (여튼 모든 글 다 다시 계속 봐야할것같은 기분) 1️⃣ 범위를 반씩 좁혀가는 탐색 # 순차탐색 Sequential Search ## 리스트 안에 있는 특정한 데이터를 찾기 위해 앞에서부터 데이터를 하나씩 차례대로 확인하는 방법 시간복잡도 O(N) ### 7-01.py ### ### 순차 탐색 소스 코드 ### # 순차 탐색 소스코드 구현 부분 def sequential_search(n, target, array): # 각 원소를 하나씩 확인하며 for i in range(n)..

이것이코딩테스트다 | Ch06 정렬

Date | 2021.07.16 Review | 정렬은 전공 수업 때도 배웠지만 한 번 정리할 수 있는 시간이라 좋았다. 이건 정리해두고나서도 계속 꾸준히 보면서 더 익혀야 할 것 같다. 특히 정렬 종류 별 시간 복잡도 계산은 아직도 완전 딱 입에서 나오는 내용이 아니라 한 번 더 정리해봐야 할 것 같다. 1️⃣ 기준에 따라 데이터를 정렬 #정렬 Sorting #데이터를 특정한 기준에 따라 순서대로 나열 ###코딩테스트에서 정렬 알고리즘이 사용되는 3가지 유형### ## 1. 정렬 라이브러리 사용 ## 2. 선택정렬 / 삽입정렬 / 퀵정렬 사용 ## 3. 계수정렬 사용 ### 6-01.py ### ### 선택 정렬 소스 코드 ### ## 가장 작은 데이터 선택해 맨 앞 데이터와 바꾸고 ## 그 다음 작은..

이것이코딩테스트다 | Ch05 DFS/BFS

Date | 2021.07.13~14 Review | 자료구조 시간이나 컴퓨터개론 시간에 배웠던 내용을 스스로 정리하고 코딩테스트에 어떻게 활용하는 방법을 익힐 수 있는 시간이라 유익했다. / DFS BFS를 어떤식으로 실전 알고리즘을 작성하는데 쓰는지 실전문제 코드로 보았는데 너무 신기한데 너무 어렵다,, 여기는 수시로 보면서 익혀야 할 것 같다 꿱 1️⃣ 꼭 필요한 자료 구조 기초 #탐색(Search) : 많은 양의 데이터 중에서 원하는 데이터만 찾는 과정 - DFS / BFS #자료구조(Data Structure) : 데이터를 표현하고 관리하고 처리하기 위한 구조 - Stack / Que ## 1) 스택 Stack 바닥에 상자를 아래에서 위로 차곡차곡 쌓는 것에 비유 _ 별도의 라이브러리 사용하지 ..

이것이코딩테스트다 | Ch04 구현

Date | 2021.05.20 / 2021.07.12 Review | 파이썬에 아직 완전히 익숙하지 않아 코드가 바로바로 나오지 않는다. 4-4.py는 어려워서 일단 건너뛰기~,, 1️⃣ 아이디어를 코드로 바꾸는 구현 # 아이디어를 코드로 바꾸는 구현 # 구현 implementation ## 특징 머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정 피지컬(코드작성속도 등)을 요구하는 문제 사소한 입력 조건 등을 문제에서 명시 문제의 길이가 꽤 긴 편 문법에 익숙하다면 오히려 쉽게 풀 수 있는 문제 ## 유형 완전탐색 : 모든 경우의 수를 주저 없이 다 계산하는 방법 시뮬레이션 : 문제에서 제시한 알고리즘을 한 단계씩 차례대로 직접 수행하는 방법 ### 4-1.py ### # 공간의 크기 N 입력받기 n =..

이것이코딩테스트다 | Ch03 그리디

Date | 2021.05.19 / 2021.07.12 Review | 문제들이 간단해서 금방 풀었다. 책에서 제시한 코드랑 다르게 코딩한 부분도 많아서 비교를 많이 했다. 파이썬으로 코딩테스트를 풀 때 필요한 몇 가지 기본적인 함수 (ex. map)도 정리했는데 유용했다. 1️⃣ 당장 좋은 것만 선택하는 그리디 #당장 좋은 것만 선택하는 그리디 #그리디 알고리즘 (Greedy) ## 특징 매 순간 가장 좋아 보이는 것을 선택 현재의 선택이 나중에 미칠 영향에 대해서 고려하지 않음 ## 키워드 가장 큰 순서대로 가장 작은 순서대로 n = 1260 count = 0 # 큰 단위 화폐부터 차례대로 배열로 생성 coin_types = [500, 100, 50, 10] for coin in coin_types:..