분류 전체보기(301)
-
[Codeforces] Promo
https://codeforces.com/contest/1697/problem/B Problem - B - Codeforces codeforces.com 아쉽게도 시간 초과가 발생해서 틀린 문제이다. 시간 초과가 발생한 풀이법 i개의 아이템을 가격 내림차순으로 정렬한 후, $y$는 $x$개의 아이템들 중 가장 저렴한 아이템의 개수이므로 $p_1...p_x$ 총 $x$개 중에서 뒤에서부터 $y$개를 방문하며 합을 구하도록 하였다. 그런데 시간 초과가 발생하다 이번에는 x 구간 내에서 y 구간과 비 y 구간의 크기를 비교하여 크지 않은 곳의 합을 구하여 최종적으로 y구간의 합을 구하는 방법을 택했다. 그런데 이번에도 시간 초과 발생!!........ㅠㅠ 시간 초과가 발생하지 않은 방법 도저히 방법이 떠오르지..
2022.06.13 -
4장. 신경망 학습
주제 학습이란? 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것 이번 장에서는 신경망이 학습할 수 있도록 해주는 지표인 손실 함수(loss function)를 소개한다. 이 손실 함수의 결괏값을 가장 작게 만드는 가중치 매개 변수를 찾는 것이 학습의 목표이다. 이번 장에서는 손실 함수의 값을 가급적 작게 만드는 기법으로, 함수의 기울기를 활용하는 경사법을 소개한다. 기계학습은 데이터가 생명이다. 기계학습에서는 사람의 개입을 최소화하고 수집한 데이터로부터 패턴을 찾으려 시도한다. 기계학습 문제는 데이터를 훈련 데이터와 시험 데이터로 나눠 학습과 실험을 수행하는 것이 일반적이다. 우선 훈련 데이터만 사용하여 학습하면서 최적의 매개변수를 찾는다. 그런 다음 시험 데이터를 사용하여 앞서 훈련한..
2022.06.12 -
[중급 알고리즘] Brute Force 확장
💚 2003 수들의 합 2 총 방법의 수 3가지 - $O(N^3)$: i 정하기, j 정하기, i ~ j 구간합 구하기 - $O(N^2)$: i 정하기, j 정하기, 합은 중복 합 활용 - $O(N)$: 모든 배열값이 양수라는 점 활용 i = a, j = b의 합이 M보다 작았고 i = a, j = b + 1의 합이 M보다 큰 경우를 생각해보자. 식으로 나타내면 다음과 같다. $A[a] + A[a + 1] + ... + A[b] m$ 이 경우 j를 계속 증가시키는 것은 의미가 없기 때문에 i를 증가시켜야 한다. 그런데 i = a + 1, a + 1 $ M이기 때문에 처음의 전제와 다르고 모수닝 발생한다. 따라서 이런 경우는 i만 증..
2022.06.10 -
SQL 가독성을 높이는 다섯 가지 사소한 습관
1. 예약어는 대문자로 SELECT, FROM, GROUP BY, HAVING BY 등 SQL 예약어를 대문자로 작성한다. 2. 행갈이를 자주 하자 가독성을 향상할 수 있다. 3. 행갈이를 더! 자주 하자 SELECT day , time , SUM(total_bill) FROM tips WHERE sex = 'Female' AND smoker = 'Yes' GROUP BY day , time 만약 한 칼럼만 남기고 싶을 때 앞에 주석 처리를 하면 간편하게 코드를 수정할 수 있다. WHERE 조건절에서도AND, OR 이 붙을 때마다 행갈이를 해주면 조건에 대한 출력을 수정하기 간편하다. SELECT day -- , time , SUM(total_bill) FROM tips WHERE sex = 'Femal..
2022.06.10 -
[Spring] 🌱스프링 핵심 원리 강의 메모
이전 인턴을 수행하면서 객체지향언어인 C#dmf 익히고, 객체 지향 프로그래밍에 대한 이론적인 습득도 하였으나 정작 실무에서 제대로 써먹지는 못했었다. 그래서 아쉬움 마음도 달래고, 배움을 멈추지 않기 위해 오히려 Spring을 통해 객체지향을 본격적으로 배우고 싶은 마음에 해당 강의를 수강하기 시작하기로 하였다. 다행스럽게도 학부 시절 전공 시간에 소*민 교수님의 명강인 Java를 들어둔 덕분에 어렵지 않게 입문했다. 스프링이란? 필수 스프링 프레임워크, 스프링 부트 선택 스프링 데이터, 세션, 시큐리티, Rest Docs, 배치, 클라우드 스프링 리액티브 프로그래밍 : Java에서도 Non-Blocking 기술 활용 가능 🌱 스프링 프레임워크 - 핵심 기술: 스프링 DI 컨테이너, AOP, 이벤트, ..
2022.06.10 -
[중급 알고리즘] Brute Force 문제
💚 16988 Baaaaaaaaaduk2(Easy) 시간 복잡도는 크게 2부분을 나뉜다. 돌을 2개 놓는 부분 알아보기$(NM)^2$, 죽일 수 있는 상대 돌의 개수 세기 BFS →$(NM)$ 여기서 BFS를 할 때, 내 돌을 기준으로 BFS 탐색을 하는 것이 아니라 상대 돌을 기준으로 탐색한다는 점이 포인트이고, 만약 탐색 중 빈 공간을 만나면 dead로, 유효하지 않음을 처리하는 것도 중요하다. #include #include #include #include #include #include using namespace std; int n, m; int a[20][20]; bool check[20][20]; int dx[] = {0, 0, 1, -1}; int dy[] = {1, -1, 0, 0}; i..
2022.06.09