문제 설명 xx 회사의 2xN명의 사원들은 N명씩 두 팀으로 나눠 숫자 게임을 하려고 합니다. 두 개의 팀을 각각 A팀과 B팀이라고 하겠습니다. 숫자 게임의 규칙은 다음과 같습니다. 먼저 모든 사원이 무작위로 자연수를 하나씩 부여받습니다. 각 사원은 딱 한 번씩 경기를 합니다. 각 경기당 A팀에서 한 사원이, B팀에서 한 사원이 나와 서로의 수를 공개합니다. 그때 숫자가 큰 쪽이 승리하게 되고, 승리한 사원이 속한 팀은 승점을 1점 얻게 됩니다. 만약 숫자가 같다면 누구도 승점을 얻지 않습니다. 전체 사원들은 우선 무작위로 자연수를 하나씩 부여받았습니다. 그다음 A팀은 빠르게 출전순서를 정했고 자신들의 출전 순서를 B팀에게 공개해버렸습니다. B팀은 그것을 보고 자신들의 최종 승점을 가장 높이는 방법으로 ..
문제 설명 과자를 바구니 단위로 파는 가게가 있습니다. 이 가게는 1번부터 N번까지 차례로 번호가 붙은 바구니 N개가 일렬로 나열해 놨습니다. 철수는 두 아들에게 줄 과자를 사려합니다. 첫째 아들에게는 l번 바구니부터 m번 바구니까지, 둘째 아들에게는 m+1번 바구니부터 r번 바구니까지를 주려합니다. 단, 두 아들이 받을 과자 수는 같아야 합니다(1 우선 1부터 x 인덱스에 해당하는 요소까지의 accumulate[x]를 저장해둔다. 중복 계산을 피하기 위해서 >> 간단하게 말하면, 왼쪽 합과, 오른쪽 합을 비교해나가면 되는 것인데 >> 왼쪽 합은 c라는 변수로 표현하며, 우측 경계(m)이 고정된 상태에서 좌측 경계를 l이라는 변수로 조절한다. >> 우측 합은 s라는 변수로 표현하며, s = accum[r..
최근, 강화학습을 공부하면서 DP를 접하게 되었다. MP(markov process), MDP(markov decision process)를 공부하면서 DP를 처음 접하게 되었다. 기억나는 표현은 시간적 요소와 공간적 요소(메모리) 사이의 Trad-off라는 것. 즉, 메모리를 조금? 더 사용해서 관심 문제를 상대적으로 빠르게 해결하는 수단이라는 것이다. 특정 계산의 결과를 저장하여, 그 계산이 다시 일어나지 않도록 조치를 취하는 방식으로 작동한다. 백준1463 문제를 해결함에 있어서 DP를 어떻게 써먹을지 한번 고민해 봅시다. problem 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다...
chapter6 학습 관련 기술들 공부할 내용 최적화 방법 가중치 매개변수 초기값 하이퍼파라미터 설정 방법 오버피팅의 대응책인 가중치 감소와 드롭아웃 6.1 매개변수 갱신 1. 신경망 학습의 목적 : 손실 함수의 값을 가능한 한 낮추는 매개변수를 찾는 것 2. 즉, optimization 3. 확률적 경사 하강법 : SGD, differential을 이용한 4. SGD의 단점 : 비등방성 함수에서는 탐색 경로가 비효율적이다. 5. Momentum 방식 6. AdaGrad 방식
class 공부 들어갑니다. 객체지향의 요건 > > encapsulation, 캡슐화 > > abstraction, 추상화 > > inheritance, 상속성 > > polymorphism, 다형성 c++에서 한 클래스의 맴버 변수의 접근 권한은 private에 해당한다. 그렇다면 private인 멤버 변수에는 어떻게 접근해야하는가? public interface로만 접근해라? public interface란,, java 기준으로 생각해보면 private으로 설정할 경우, 해당 클래스의 객체 조차도 getter, setter가 public으로 존재하는 경우에만 해당 private 멤버 변수에 접근 가능하지 않은가? 질문. 왜 c++에서 virtual을 사용하는가? 포프 강의 다시 들어보도록 overri..
함수 필수 요소 3개 1. 함수 원형 선언 2. 함수 호출 3. 함수 정의 구현{} 컴파일 시, 함수 원형이 선언되어 있어야 한다. 링크 시, 함수 정의 부분이 연결된다? 컴파일 순서 1. 소스파일(~~.c) to 어셈블리파일(~~.s) : 이 과정을 컴파일러?가 해준다. 2. 어셈블리파일(~~.s) to 오브젝트파일(~~.o) : 이 과정을 어셈블러가 해준다. 펌웨어 내부 동작? 1. polling 방식 2. interrupt ~~ 방식 >> 위 두 방식을 혼합?해서 사용한다고 한다. >> os단에서 해야 하는 거, Device driver를 짜야 한다?
OpenCV는 이미지 데이터를 처리하는데 주로 사용되는데, 처리하는 데이터가 주로 고용량이므로, 데이터의 복사와 관련해서 신중할 필요가 있다. 왜냐하면 빠른 데이터 처리 속도가 필요한 경우, 무의미한 데이터 복사가 프로그램의 성능을 떨어뜨릴 수 있기 때문이다. 얕은 복사 cv::Mat image1 = cv::imread(PATH); // image1 생성 cv::Mat image2(image1); // 복사 생성자를 이용한 얕은 복사 cv::Mat image3 = image1; // 얕은 복사 깊은 복사 cv::Mat image4; image4.copyTo(image2); // 깊은 복사 cv::Mat image5 = image3.clone();
1. DAO, DTO(VO) 1) DAO : Data Access Object의 약자 // db의 data에 접근을 하기 위한 객체- 웹서버는 db와 연결하기 위해서 매번 커넥션 객체를 생성- 이것을 해결하기 위해 커넥션 풀을 사용한다.- 커넥션 풀이란 커넥션 객체를 미리 만들어 놓고 그것을 가져다 쓰는 것- 다오는 디비를 사용해 데이터에 접근하거나, 데이터를 조작하는 기능을 전담 2) DTO : Data Transfer Object // 계층간 데이터 교환을 위한 자바빈즈 - VO는 DTO와 동일한 개념이지만 read only 속성을 가진다.- DTO는 일반적으로 로직을 갖고 있지 않은 순수한 데이터 객체, getter, setter 있음