Manduss life

[문제] 영우는 천하제일 암산대회를 앞두고 있습니다. 암산보다는 암기에 일가견이 있는 영우는 구구단을 확장하여 억억단을 만들고 외워버리기로 하였습니다. 억억단은 1억 x 1억 크기의 행렬입니다. 억억단을 외우던 영우는 친구 수연에게 퀴즈를 내달라고 부탁하였습니다. 수연은 평범하게 문제를 내봐야 영우가 너무 쉽게 맞히기 때문에 좀 어렵게 퀴즈를 내보려고 합니다. 적당한 수 e를 먼저 정하여 알려주고 e 이하의 임의의 수 s를 여러 개 얘기합니다. 영우는 각 s에 대해서 s보다 크거나 같고 e 보다 작거나 같은 수 중에서 억억단에서 가장 많이 등장한 수를 답해야 합니다. 만약 가장 많이 등장한 수가 여러 개라면 그 중 가장 작은 수를 답해야 합니다. 수연은 영우가 정답을 말하는지 확인하기 위해 당신에게 프로..

[문제] 문제 설명 호텔을 운영 중인 코니는 최소한의 객실만을 사용하여 예약 손님들을 받으려고 합니다. 한 번 사용한 객실은 퇴실 시간을 기준으로 10분간 청소를 하고 다음 손님들이 사용할 수 있습니다. 예약 시각이 문자열 형태로 담긴 2차원 배열 book_time이 매개변수로 주어질 때, 코니에게 필요한 최소 객실의 수를 return 하는 solution 함수를 완성해주세요. 제한사항 1 ≤ book_time의 길이 ≤ 1,000 book_time[i]는 ["HH:MM", "HH:MM"]의 형태로 이루어진 배열입니다 [대실 시작 시각, 대실 종료 시각] 형태입니다. 시각은 HH:MM 형태로 24시간 표기법을 따르며, "00:00" 부터 "23:59" 까지로 주어집니다. 예약 시각이 자정을 넘어가는 경우..

LeNet 5개의 계층(2개의 Convolution layer, 3개의 Fully Connected layer) 6만개의 parameter nMB의 MNIST 데이터셋 사용 아래 코드에서 보면, 첫번째 layer의 input dimension이 3이다. 초기에는 단일 이미지가 입력이었는데, 색상 이미지(3채널)이미지가 입력으로 들어오는 구조로 수정되었다. ## LeNet은 maxpooling이 아닌 average pooling을 사용한다. class LeNet(nn.Module): def __init__(self): super(LeNet, self).__init__() self.cn1 = nn.Conv2d(3, 6, 5) self.cn2 = nn.Conv2d(6, 16, 5) self.fc1 = nn.L..

CNN 특징 가중치 공유 CNN은 가중치를 공유할 수 있어 매개변수를 효율적을 활용한다. 즉, 동일한 가중치 또는 매개변수로 다양한 특징을 추출한다. 자동 feature 추출 feature 추출 단게를 여러개 둠으로써 CNN은 데이터셋에서 자동으로 특징 표현을 학습할 수 있다. 계층적 학습 여러 계층으로 구성된 CNN 구조 덕분에 저수준에서 고수준까지의 feature를 학습할 수 있다. 시각적, 공간적 상관관게 탐색 가능 ex) 동영상 처리 작업 CNN의 발전 요인 경사 소실 문제를 극복하기 위한 활성화 함수, 손실 함수 사용 경사 소실 문제 : chain rule에 따르면, 손실 함수의 gradient 값은 각 계층의 gradient의 곱으로 나타내는데, 이 값들이 1보다 작으면, 0으로 수렴되어 매개..

[문제] 문제 설명 N개의 스티커가 원형으로 연결되어 있습니다. 다음 그림은 N = 8인 경우의 예시입니다. 원형으로 연결된 스티커에서 몇 장의 스티커를 뜯어내어 뜯어낸 스티커에 적힌 숫자의 합이 최대가 되도록 하고 싶습니다. 단 스티커 한 장을 뜯어내면 양쪽으로 인접해있는 스티커는 찢어져서 사용할 수 없게 됩니다. 예를 들어 위 그림에서 14가 적힌 스티커를 뜯으면 인접해있는 10, 6이 적힌 스티커는 사용할 수 없습니다. 스티커에 적힌 숫자가 배열 형태로 주어질 때, 스티커를 뜯어내어 얻을 수 있는 숫자의 합의 최댓값을 return 하는 solution 함수를 완성해 주세요. 원형의 스티커 모양을 위해 배열의 첫 번째 원소와 마지막 원소가 서로 연결되어 있다고 간주합니다. 제한 사항 sticker는 ..

Dropout self.dp1 = nn.Dropout2d(0.5) --> 이전 뉴런을 0.5 확률로 제거 커널 크기 커널 크기를 크게 잡으면 정밀해지지 못함. 이미지의 가장 중요한 시각적 특징은 특정 범위에서 발견되므로, 시각적 패턴을 찾으려면 한번에 인접한 픽셀 몇 개만을 보는 작은 저널을 쓰는 것이 낫다. 3x3 커널 크기를 가장 많이 쓴다. optim.zero_grad() 매 학습마다 gradient값을 0으로 설정해주어야한다. Pytorch에서는 gradients값들을 추후 backward를 해줄때 계속 더해주기 때문이다. 출처 : https://algopoolja.tistory.com/55 with torch.no_grad(): inference 시에 해주는 자동으로 gradient를 계산하는 ..
[문제] https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 카카오톡에서는 이모티콘을 무제한으로 사용할 수 있는 이모티콘 플러스 서비스 가입자 수를 늘리려고 합니다. 이를 위해 카카오톡에서는 이모티콘 할인 행사를 하는데, 목표는 다음과 같습니다. 이모티콘 플러스 서비스 가입자를 최대한 늘리는 것. 이모티콘 판매액을 최대한 늘리는 것. 1번 목표가 우선이며, 2번 목표가 그 다음입니다. 이모티콘 할인 행사는 다음과 같은 방식으로 진행됩니..

[문제] https://school.programmers.co.kr/learn/courses/30/lessons/150367 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 당신은 이진트리를 수로 표현하는 것을 좋아합니다. 이진트리를 수로 표현하는 방법은 다음과 같습니다. 이진수를 저장할 빈 문자열을 생성합니다. 주어진 이진트리에 더미 노드를 추가하여 포화 이진트리로 만듭니다. 루트 노드는 그대로 유지합니다. 만들어진 포화 이진트리의 노드들을 가장 왼쪽 노드부터 가장 오른쪽 노드까지, 왼쪽에 있는 순서대로 살펴봅니다. 노드의 높이는 살펴보는 순서..