본문 바로가기

분류 전체보기

(49)
1713 Minimum Operations to Make a Subsequence 이 문제는 주어진 배열 arr이 target을 subsequence로 만드는 배열로 되려면 몇 번의 insert를 수행해야 하는지를 묻는 문제이다. 최장 공통부분 배열로 생각하기 쉽지만 아쉽게도 그렇게 풀면 시간 초과가 걸린다. 그래서 이 문제는 주어진 배열 arr이 문자열이 아니라 숫자로 구성되어 있으며, target의 원소가 모두 1번만 나타난 것에 유의해서 최장 증가 부분 수열로 풀어야 한다. =============================== 여담으로 포스팅한 1710부터 1713까지는 위클리 콘테스트 222의 문제이다. 이 콘테스트 1등이 23분만에 다 풀었는데 이쯤 되면 ICPC 올솔 할 수 있으려나 ㅋㅋㅋㅋㅋㅋ C++ 더보기 class Solution { public: int minOp..
1712 Ways to Split Array Into Three Subarrays 숫자로 구성된 배열을 각각 mid의 합은 left의 합보다 같거나 크게, right의 합은 mid의 합보다 같거나 크게 3조각으로 나눌 수 있는 경우의 수를 구하는 문제이다. 이 문제는 정렬된 배열에서 특정한 값을 찾는 전형적인 이진 탐색 문제로, 누적합이 저장된 배열을 만들고, 그 배열에서 mid가 될 수 있는 최소 인덱스와 최대 인덱스를 찾으면 된다. 그리고 이진 탐색 말고도, 투 포인터로 풀린다. 나도 처음에 이진 탐색 말고도, 투 포인터로 하려고 했는데 예외 처리에서 애먹어서 그냥 이진 탐색으로 풀었다. 코드는 Discuss 뒤지면 나온다. C++ 더보기 class Solution { public: int waysToSplit(vector& nums) { vector sum(nums.size())..
1711 Count Good Meals 입력으로 주어진 음식들 중에서 두 개를 선택했을 때, 맛있는 정도의 합이 2의 지수가 되는 경우의 수를 찾는 문제이다. 문제를 봤을 때, 바로 조합을 이용하는 방법이 생각났지만, 시간 복잡도 상 당연히 조합은 안 되었다. 그래서 일단 맛있는 정도를 Key, 등장 횟수를 value로 하는 해쉬맵을 만들고, 해당 해쉬맵을 순회하면서 모든 경우의 수를 찾는 시간복잡도 O(N)의 방법으로 해결했다. 여담으로 리트코드 채점 서버가 좀 이상한 거 같다. 같은 코드를 제출해도 수행시간이 2배까지도 차이가 났다... 음... 백준처럼 채점 서버에 제출이 몰리면 순차적으로 수행하는 게 아니라 그냥 동시에 돌리는 건가 C++ 더보기 class Solution { public: int countPairs(vector& de..
1710 Maximum Units on a Truck Easy 난이도의 문제로 난이도대로 정말 쉽다 정렬만 해주면 바로 끝나는 문제이다. C++ 더보기 class Solution { public: int maximumUnits(vector& boxTypes, int truckSize) { auto f = [](vector b1, vector b2){return b1[1] > b2[1];}; sort(boxTypes.begin(),boxTypes.end(),f); int cnt{}; for(auto b : boxTypes){ if (truckSize>= b[0]){ truckSize -= b[0]; cnt += b[0] * b[1]; } else{ cnt += b[1] * truckSize; return cnt; } } return cnt; } }; Pyth..
EECS 498-007 / 598-005 Lecture 3 : Linear Classifier 강의 링크 https://www.youtube.com/watch?v=qcSEP17uKKY&list=PL5-TkQAfAZFbzxjBHtzdVCWE0Zbhomg7r&index=3 강의 슬라이드 https://web.eecs.umich.edu/~justincj/slides/eecs498/498_FA2019_lecture03.pdf 이번에 배울 Linear Classifier는 단순한 구조이지만 Neural Network의 기초를 이루는 매우 중요한 요소이다. Linear Classifier는 Parametric Approach의 한 갈래로 이전의 K-Nearest Neighbor에서는 input Image만 분류 과정에서 활용하였다면, Linear Classifier에서는 Input Image 'x'와 함께 ..
EECS 498-007 / 598-005 Assignment #1 Pytorch 과제의 파이토치 튜토리얼 부분은 튜토리얼 답게 딱히 설명할 부분은 없어서 코드만 첨부하겠다. 더보기 import torch def hello(): """ This is a sample function that we will try to import and run to ensure that our environment is correctly set up on Google Colab. """ print('Hello from pytorch101.py!') def create_sample_tensor(): """ Return a torch Tensor of shape (3, 2) which is filled with zeros, except for element (0, 1) which is set..
EECS 498-007 / 598-005 Lecture 2 : Image Classification 강의 링크 https://www.youtube.com/watch?v=0nqvO3AM2Vw&list=PL5-TkQAfAZFbzxjBHtzdVCWE0Zbhomg7r&index=2 강의 슬라이드 https://web.eecs.umich.edu/~justincj/slides/eecs498/498_FA2019_lecture02.pdf ===================================================================== Image Classification은 Computer Vision의 핵심 요소 중 하나로, 이미지를 입력으로 받아서 그 이미지가 속한 카테고리를 출력으로 반환하는 작업을 지칭하는데 이 작업을 사람이 한다면 무척 간단한 작업이지만 컴퓨터가 하기에는 상당히 어려..
EECS 498-007 / 598-005 Lecture 1 : Deep Learning for Computer Vision 강의 링크 https://www.youtube.com/watch?v=dJYGatp4SvA&list=PL5-TkQAfAZFbzxjBHtzdVCWE0Zbhomg7r 강의 슬라이드 https://web.eecs.umich.edu/~justincj/slides/eecs498/498_FA2019_lecture01.pdf 1강이라 그런지 Computer Vision의 역사에 대해서 교양 강의 느낌으로 가볍게 훑는데 안 볼 사람은 안 봐도 될거 같다. 솔직히 나도 나중가면 까먹을 듯 ㅋㅋㅋㅋㅋㅋ ========================================================================= Computer Vision이란 시각 데이터를 처리, 인식, 및 추론하는 인공 시스템을 구축..

728x90