본문 바로가기

분류 전체보기

[백준 / Python] 2156: 포도주 시식 ✅ 문제 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 효주는 될 수 있는 대로 많은 양의 포도주를 맛보기 위해서 어떤 포도주 잔을 선택해야 할지 고민하고 있다. 1부터 n까지의 번호가 붙어 있는 n개의 포도주 잔이 순서대로 테이블 위에 놓여 있고, 각 포도주 잔에 들어있는 포도주의 양이 주어졌을 때, 효주를 도와 가장 많은 양의 포도주를 마실 수 있도록 하는 프로그램을 작성하시오. 예를 들.. 더보기
[백준 / Python] 14002: 가장 긴 증가하는 부분 수열 4 ✅ 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. ✅ 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) ✅ 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 둘째 줄에는 가장 긴 증가하는 부분 수열을 출력한다. 그러한 수열이 여러가지인 경우 아무거나 출력한다. ✅ 예제 입력 1 6 10 20 10 30 20 50 ✅ 예제 출력 1 4 10 20.. 더보기
[백준 / Python] 11053: 가장 긴 증가하는 부분 수열 Link: https://www.acmicpc.net/problem/11053 ✅ 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. ✅ 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) ✅ 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. ✅ 예제 입력 1 6 10 20 10 30 20 50 ✅ 예제 출력 1 4 ✅ My code N = int(i.. 더보기
[Algorithm] 구현 2. 구현 개념 구현(implementation)이란 ‘머릿속에 있는 알고리즘을 소스코드로 바꾸는 과정’이다. 어떤 문제를 풀든 소스코드를 작성하는 과정은 필수이므로 구현 문제 유형을 모든 범위의 코딩테스트 문제 유형을 포함한다. 우리가 알고리즘 문제를 해결할 때, 문제를 읽고 풀이 방법을 고민한다. 이 생각해낸 문제 풀이 방법을 우리가 원하는 언어로 정확히 구현해냈을 때 정답 처리를 받을 수 있다. 완전 탐색: 모든 경우의 수를 계산하는 해결 방법 시뮬레이션: 문제에서 제시한 알고리즘을 한 단계씩 차례로 직접 수행해야 하는 문제 유형 메모리 제약 사항 대체로 코딩 테스트에서는 128 ~ 512MB로 메모리를 제한한다. 파이썬에서 int 자료형 데이터의 개수에 따른 메모리 사용량은 아래와 같으며, 이를 .. 더보기
[Algorithm] 그리디 개념정리 개념 이 알고리즘은 어떠한 문제가 있을 때 단순하게, greedy하게 문제를 푸는 알고리즘이다. 이는 ‘현재 상황에서 지금 당장 좋은 것만 고르는 방법’을 의미한다. 여타의 알고리즘과 비교할 때, ‘사전에 외우지 않아도 풀 수 있는 가능성이 높은 문제 유형’이라는 특징이 있다. 기준 그리디 알고리즘은 기준에 따라 좋은 것을 선택하는 알고리즘이므로 문제에서 가장 큰 순서대로, 가장 작은 순서대로와 같은 기준을 제시한다. TIP 그리디 알고리즘으로 문제의 해법을 찾았을 때는 그 해법이 정당한지 검토해야 한다. 대부분의 그리디 알고리즘 문제에서는 문제 풀이를 위한 최소한의 아이디어를 떠올리고 이것이 정당한지 검토할 수 있어야 한다. 어떤 문제를 만났을 때, 바로 유형을 파악하기 어렵다면 그리디 알고리즘을 의심.. 더보기
[PyTorch] Image Captioning(CNN-LSTM) Intro¶ CNN(Encoder): Convolutional Neural Networks (CNN) are a type of deep learning model used to solve machine learning problems related to images and videos, such as image classification, object detection, and segmentation. The assumption that the patterns learned from images, like edges and contours, are independent of the pixel positions in the image allows for the sharing of weights and pa.. 더보기
[PyTorch] Train PyTorch NN Train PyTorch NN¶ In this post, we will use PyTorch to classify MNIST Dataset and check how accurate the model is in test dataset. 1. Import libraries¶ In [1]: from __future__ import print_function import argparse import torch import torch.nn as nn import torch.nn.functional as F import torch.optim as optim from torchvision import datasets, transforms from torch.optim.lr_scheduler import StepLR .. 더보기
[PyTorch] Intro I will share my learnings from studying PyTorch in this category. 더보기