안녕하세요, 오늘은 백준 알고리즘 사이트의 문제 중 9095번 1, 2, 3 더하기 문제를 풀어보려합니다. 먼저 문제부터 보겠습니다! 어떤 정수 n이 주어졌을 때, 이 n을 1,2,3의 합으로 나타내는 방법의 수를 구하는 문제입니다. 어떻게 접근해야할까요? 저는 DP(Dynamic Programming)로 접근해보겠습니다. 이 문제는 테스트 케이스 1개 이상이고 sub problem으로 main problem을 해결할 수 있으므로 DP로 접근하는 것이 바람직해보입니다. 정수 n이 1일 경우, 숫자 1에서 정수 1을 만들 수 있는 경우의 수는 1가지, 숫자 2에서 정수 1을 만들 수 있는 경우의 수는 0가지, 숫자 3에서 정수 1을 만들 수 있는 경우의 수는 0가지, 총 1가지 정수 n이 2일 경우, 숫자..
안녕하세요? 오늘은 백준 알고리즘 사이트의 문제 중 하나인 1463번 '1로 만들기'를 풀어보려 합니다. 문제 부터 보시겠습니다. 문제의 핵심은 주어진 3개의 연산을 사용하여 N을 1로 만들수 있는 최소의 연산 개수를 구하라는 것인데요? 어떻게 풀면 좋을까요?? 먼저 문제의 감을 잡기 위해 하나씩 써보겠습니다. 입력이 1일 때, 연산의 횟수는 0입니다. 입력이 2일 때, 연산의 횟수는 -1을 하면 되므로 1입니다. 또는 /2를 해도 1입니다. 입력이 3일 때, 연산의 횟수는 /3을 하면 되므로 1입니다. 입력이 4일 때, 연산의 횟수는 -1하면 3이고 이를 /3 해주면 되므로 2입니다. 또는 /2를 하여 2를 만든 다음, -1를 빼줘도 2이고, /2를 하여 2를 만든 다음 /2를 해도 2입니다. 자, 이..
안녕하세요? 오늘은 Pytorch가 무엇인지 알아보고자 합니다. Pytorch란 다음 두 가지를 목표로하는 과학 연산 패키지 파이썬입니다. 1. GPU 연산을 사용하기 위한 Numpy 대체물입니다. 2. 속도와 유연성을 극대로 한 딥러닝 연구 플랫폼입니다. 한 문장으로 정리하자면 기존 수치 연산 라이브러리인 Numpy를 딥러닝 연구 목적으로 GPU에서도 사용하고자 탄생한 속도와 유연성을 극대로 한 딥러닝 플랫폼입니다. 자 그럼 먼저 Tensor란 무엇일까요? Tensor란 Numpy의 다차원 배열인 ndarray와 유사합니다. 그렇지만 Tensor는 연산의 속도를 극대화시키기 위해 GPU에서도 사용이 가능합니다. 그럼 Tensor에 대해 직접 코드를 쳐가며 살펴보겠습니다. 사용할 라이브러리들을 impor..
안녕하세요? 오랜만에 포스팅합니다. 최대한 정확하고 유용한 그리고 간결한 정보만 전달하는게 이 블로그를 개설한 취지에 맞다고 판단하여 글을 쓰다 구성이 마음에 들지 않으면 지우고 부족한 부분을 다시 공부하고 이를 반복하다보니 포스팅 간격이 의도치 않게 길어졌습니다. 본론으로 들어가서, 오늘은 '비둘기 집의 원리'에 대해 포스팅해보고자 합니다. 비둘기집의 원리란, n+1 마리의 비둘기와 n 개의 상자가 있을 때, 적어도 상자 1 곳은 비둘기가 2마리가 들어있다는 원리입니다. [비둘기가 집을 찾아가기 전][비둘기가 집을 찾아가고 난 후] 이 원리는 너무나 당연하면서도 굉장히 강력합니다. 대표적인 예를 통해서 추가 설명을 이어가겠습니다. 위키백과에 있는 용례를 살짝 바꿔봤습니다. ■ 서울에는 1000만 명 가..
Today, I went to the 2018 SOFTWARE MAESTRO Conference!! Yeah!!, so fantastic. I feel their passion and saw the future of software industryThe software maestro is a program to produce good programmers.It is said that this year is the ninth year and every year this program choose 100 developers to produce, so far, 900 developers was produces very well. As a results, they got to start a business or..
안녕하세요? 오늘은 Haskell 설치 방법에 대해 알아보겠습니다. Haskell 홈페이지로 이동하겠습니다. https://www.haskell.org/downloads 이동을 하시면 다음과 같은 화면을 보실 수 있습니다.(2018년 5월 27일 기준) Haskell은 총 3가지 방법으로 설치가 가능하나 이번 포스팅에서는 stack으로 설치하겠습니다.stack을 클릭하시면 다음과 같은 페이지로 이동합니다.대표적으로 Ubuntu Linux, OS X, Windows 버전을 지원하네요. 저희는 Windows 버전을 선택하겠습니다. 자신에게 맞는 installer를 다운로드 받습니다. 확장자가 exe인 파일을 받으셨으면 실행시킵니다. 그 다음 next를 클릭하면 다음과 같은 화면이 출력됩니다.모두 체크하고 I..
안녕하세요? 오늘은 벡터를 오름차순과 내림차순으로 정렬하는 방법에 대해 살펴보겠습니다. 람다를 사용하여 정렬하였습니다. #include #include #include #include #include #define V_SIZE 1 std::vector genRandomNum(int maximum, int size); void printVector(std::vector vector); int main() { srand((unsigned int)time(NULL)); auto genVector = std::bind(genRandomNum, 100, 10); std::vector vInt(V_SIZE); for (int i = 0; i < V_SIZE; i++) { vInt[i] = genVector(); }..
- Total
- Today
- Yesterday