cod
본문 바로가기

전체 글

(51)
[코딩 테스트 합격자 되기] 트리 [인프런] 코딩 테스트 합격자 되기 C++강의 링크 : https://www.youtube.com/watch?v=CXiVJgUjL6o&embeds_referring_euri=https%3A%2F%2Fwww.inflearn.com%2F&source_ve_path=MjM4NTE [트리 용어]차수 (degree) : 노드의 자식 수노드의 크기(size) : 자신을 포함한 모든 자손 노드의 개수[이진 트리 표현 - 배열]루트 노드 인덱스 : 1왼쪽 자식 노드 : 부모 노드 인덱스 * 2오른쪽 자식 노드 : 부모 노드 인덱스 * 2 + 1구현 쉽지만, 빈 공간이 많음 (메모리 공간 낭비) [이진 트리 표현 - 인접 리스트]각 리스트의 인덱스는 부모 노드자식 노드는 부모 노드에 해당되는 인덱스에 추가공간 활용도가 ..
알고리즘 문제 오답 노트 오답 노트알고리즘 문제를 풀며 틀린 원인 분석 및 새로 알게된 부분 정리 코딩 테스트 전 한번 보고 갈만한 노트1. 출력값에 % 10 (마지막 자리 수만 출력) 을 요구할 때는    조건을 모두 고려해서 계산 후 최종 값에 % 10 계산 필요    ex) 백준 16946 벽 부수고 이동하기 4 : 틀렸습니다 -> 맞았습니다2. 배열 크기가 너무 크면 배열 초기화에도 시간이 걸림   아래 코드 주석 부분 (방문 확인을 위해 checked 배열 사용) 을 set 으로 변경하여 시간 초과 해결   ex) 백준 16946 벽 부수고 이동하기 4 : 시간초과 -> 맞았습니다# count the number of grids can be movedcan_move = [[0] * M for _ in range(N)]f..
모듈러 연산의 성질을 활용한 알고리즘 최적화 방법 백준 13172 Σ 문제를 풀면서, 재귀 호출을 사용한 거듭제곱 계산을 구현했다. 문제는 풀렸지만, 문제의 의도가 역원을 계산하는 방법을 사용하여 모듈러 연산을 해야하는 것 같고이에 대해 조금 더 깊게 공부해보고자 블로그를 작성한다. 모듈러 연산의 성질을 활용한 다양한 알고리즘 최적화 방법1. 모듈러 거듭제곱 (Modular Exponentiation)빠른 거듭제곱법(Exponentiation by Squaring)을 사용하여 큰 수의 거듭제곱을 모듈로 연산할 때 효율적으로 계산한다. 백준 13172 문제를 풀이했던 방법이다.  2. 모듈러 역원 (Modular Inverse)유클리드 호제법을 사용한 확장 유클리드 알고리즘을 통해 모듈러 역원을 계산한다. 이는 주어진 수 'a'와 모듈러 'm'에 대해 $..
[코딩 테스트 합격자 되기] 해시 [인프런] 코딩 테스트 합격자 되기 C++강의 링크 : https://www.youtube.com/watch?v=KsfmSyIYX3g&t=3s 배열의 경우 특정 데이터의 위치를 판단할 수 있는 정보가 없으므로, 선형탐색 해야 함 O(n)contents 자체를 가지고 위치 (index)를 알 수 있는 것이 해시 해시 함수를 사용해서 변환한 값을 인덱스(해시값)로 삼아 키-값을 저장해서 빠른 데이터 탐색을 제공하는 자료구조 O(1) 해시함수 : 임의의 키를 해시테이블의 인덱스로 변경해주는 함수해시 테이블의 크기가 N이라면 해시함수는 0 ~ (N-1) 사이 값을 내야 함충돌을 최소화 할수록 좋은 해시함수* 충돌 : 서로 다른 키에 대해 해시 함수가 동일한 인덱스를 반환하는 것 [해시함수 종류]나눗셈법 : h(..
[코딩 테스트 합격자 되기] 스택/큐 [인프런] 코딩 테스트 합격자 되기 C++강의 링크 : https://www.youtube.com/watch?v=-TGCT74wFeg&t=2s FILO (First In Last Out)사용 예시 : 함수 호출 관리, 페이지 탐색, 괄호 짝 맞추기- 가장 최근 원소를 봐야하는 경우 사용- 추후 DFS, 백트래킹에서 사용 FIFO (First In First Out)사용 예시 : 줄 서기, 요세푸스 문제 - 들어온 순서대로 나갈 때 사용- 추후 BFS에서 사용[풀이할 문제] (스택/큐 관련문제, 필수풀이) 괄호 회전하기(문제 10)=> https://school.programmers.co.kr/learn/courses/30/lessons/76502주식 가격(문제 12)=> https://school.pro..
[코딩 테스트 합격자 되기] 시간 복잡도 코딩 테스트 스터디기간 : 2024-07-08 ~ 2024-08-25 스터디 참가 이유 및 목표알고리즘 기초 개념 복기평소 쓰는 언어인 파이썬 대신 C++를 사용해보면서 코드의 동작 원리를 깊이있게 이해 스터디 방식[인프런] 코딩 테스트 합격자 되기 - C++ 강의를 보고 금요일까지 블로그에 내용 정리일요일 14:00에 디스코드를 통해 공부한 내용에 대해 소통학습 날짜 : 2024-07-08학습 주제 : 시간 복잡도 [목차]알고리즘이란?알고리즘 성능측정법 및 시간 복잡도 개념시간 복잡도를 빅오 표기법으로 표기하기코딩 테스트에서 꼭 알아둬야 할 시간 복잡도실전 예시알고리즘 성능은 구현된 코드가 동작하는 절대 시간이나 연산 횟수를 파악하여 측정할 수 있다코딩테스트에서 알고리즘의 성능은 연산 횟수로 측정 / ..
Logistic Regression cost function MLB2024 | Neural Networks and Deep Learning by CourseraCross Entropy Loss functionIf y=1 : make L = -log^y small => make ^y large, in sigmoid ^y ≈ 1If y=0 : make L = -log(1-^y) small => make 1-^y large => make ^y small, in sigmoid ^y ≈ 0  ∴ label (ground truth) 이 주어졌을 때 loss function을 통해 파라미터가 gt와 같은 값으로 학습할 수 있도록 구현된 식 Loss function : in single training exampleCost function : is the cost of you..
카카오 로그인 과정, OAuth 동작 방식 카카오 로그인은 OAuth 2.0 프로토콜 중 Authorization Code Grant 방식을 사용한다.우선, OAuth 에 대해서 알아보자.OAuth (Open Authorization)인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트의 자신의 정보로 웹사이트나 애플리케이션의 접근 권한을 부여할 수 있는 수단으로 사용되는, 접근 위임을 위한 개방형 표준이다. (위키백과)외부 소셜 계정을 기반으로 간편히 회원가입 및 로그인을 할 때 사용하는 프로토콜 OAuth 동작 방식Resource Server : Client가 제어하고자 하는 자원을 보유하고 있는 서버 (Google, Kakao 등)Resource Owner : 자원의 소유자. 실제 유저Client : Resource Server에 접속해..