본문 바로가기

반응형

공부

(145)
[알고리즘] 동적 계획법(dynamic programming) - 5 오랜만에 쓰는 알고리즘 글입니다!요즘 뭔가 하고싶은 일이 많다보니 알고리즘을 조금 줄이게 됐네요!종만북 1권도 도대체 언제 끝낼지 모르겠습니다 후덜덜;; 각설하고 이제 동적 계획법에 대해서 설명하겠습니다! 오늘은 정수 이외의 입력에 대해서 어떻게 메모이제이션을 할 것인가? 에 대해 알아보겠습니다! 지금까지는 메모이제이션에 사용되는 값이 정수였습니다!하지만, 가끔씩 메모이제이션에 사용해야 하는 값이 문자열이거나 배열인 경우가 있습니다. 이런 경우에는 어떻게 메모이제이션을 해야할까요!? 첫번째로는 STL의 힘을 빌리는 방법이 있습니다.C++ STL에는 map과 vector라는 아주 훌륭한 stl이 있기 때문에 다음과 같이 메모이제이션을 사용할 수 있습니다. map memoi STL의 컨테이너는 자체적인 대소..
[SW Expert Academy] 괄호 짝짓기 괄호 짝짓기 SW Exeprt Academy의 문제들은 무단복제가 금지되어있기 때문에 링크로 대체합니다. 어떻게 풀까? 대표적인 스택 활용 문제입니다. 열린 괄호의 경우에는 모두 스택에 저장합니다.그리고, 닫힌 괄호가 나타나면 스택의 맨 위의 괄호와 비교합니다. 만약, 스택의 맨 위의 열린 괄호와 현재 나타난 닫힌 괄호가 매칭이 되지 않는다면 제대로 맞지 않는 괄호겠죠! 또한, 마지막에 스택 사이즈도 확인해야 합니다.스택 사이즈가 0이 아니라면, 열린 괄호가 많이 남아있다는 것이겠죠! 이 상황도 괄호의 짝이 맞지 않는 경우입니다. 간단한 예시 문제 2개를 풀어보겠습니다. 열린 중괄호이기 때문에 스택에 넣습니다.마찬가지로 열린 대괄호이기 때문에 스택에 넣습니다.마찬가지로 열린 소괄호이기 때문에 스택에 넣습..
[SW Expert Academy] 길찾기 길찾기 SW Expert Academy는 문제 복제가 금지되어 있기 때문에 링크로 대체하겠습니다. 어떻게 풀까? 대표적인 DFS / BFS 문제입니다.저 같은 경우는 그냥 시작점에서 큐를 돌려서 BFS를 이용해서 풀었습니다! 0번 노드에서 시작해서 0번 노드에서 이어지는 노드들을 모두 큐에 넣은 후에 방문 했다는 것을 체크해 둡니다.만약, 99번 노드가 나온다면 바로 연결되어있다는 것으로 끝내주면 됩니다.하지만 큐가 빌 때까지 99번 노드를 찾을 수 없다면, 시작 노드에서 끝 노드로 갈 수 없다는 것이 될 것입니다! 문제를 하나 풀어보겠습니다. 큐에 시작점인 0을 넣고, 0번을 방문 했다고 체크 합니다. 큐의 가장 위에 있는 0번 노드가 시작 노드가 됩니다.0번 노드가 가리키는 1번과 2번 노드를 큐에 ..
[비쥬얼 스튜디오] scanf_s를 쓰라는 오류 해결하기 가끔씩 이런 오류를 보신적이 있을겁니다!오류C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 옛날 비쥬얼 스튜디오에서는 프로젝트를 만들때 추가적인 체크를 하나 더 해주면 뜨지 않았지만,이상하게 비쥬얼 스튜디오 2017에서는 이러한 체크가 없었습니다!!!! 생각보다 오류를 해결하기는 쉬웠습니다.우선 프로젝트를 우클릭해서 속성으로 들어가 줍시다! C/C++ - 일반 - SDL 검사를 아니요로 해주시면 해결됩니다! 오늘의 몰라도 되고 알아도 뭔가 2% 모자라는..
[알고스팟] 드래곤 커브 문제 링크 드래곤 커브문제답안 제출통계문제 정보문제 ID시간 제한메모리 제한제출 횟수정답 횟수 (비율)DRAGON2000ms65536kb1009577 (57%)출제자출처분류JongMan알고리즘 문제 해결 전략보기문제드래곤 커브(Dragon curve)는 간단한 수학 규칙으로 그릴 수 있는 그림으로, 위 그림같은 형태를 지닙니다. 드래곤 커브는 선분 하나에서 시작해서 간단한 규칙으로 이 선분을 변형해서 만들어지며, 변형이 한 번 이루어져 세대가 변할 때마다 더욱 복잡한 모양으로 진화합니다. 이 도형같이 일부를 확대했을 때 전체와 비슷한 형태로 구성된 도형들을 프랙탈(fractal) 이라고 하지요.드래곤 커브를 그리는 방법을 드래곤 커브 문자열이라고 부릅시다. 드래곤 커브 문자열은 X, Y, F, +, -로..
안드로이드 스튜디오를 시작해 보겠습니다! 그래픽스 책을 읽으면서 뭔가 내용이 확 와닿지 않아서프로젝트를 하나 진행해보면서 필요한 부분들을 읽어나가는 식으로 진행하면 좀 더 재밌지 않을까 생각이 들었습니다. 그래서 이번에 한번 프로젝트를 직접 만들어보기로 했습니다! 그래픽스를 이용해서 자유롭게 메모를 할 수 있는 어플 정도로? 생각하고 있습니다!다만.. 이를 위해선 역시 안드로이드 스튜디오를 배워야 할 것 같네요!점점 해야할 일이 쌓여가서 알고리즘도 얼마나 진행될지 모르겠네요 ㅋㅋㅋㅋ어쨌든! 이번 상반기는 이렇게 즐겨봅시다! 해보고 싶은건 무엇이든 해보는 상반기가 되야겠습니다!
[비쥬얼 스튜디오] 한번에 주석을 처리하는 키가 있다면!? 주석 키 이번 글은 짧고 굵습니다.실은 이 팁은 2% 모자란 팁이 아닙니다!!! 굉장히 유용합니다! 자자 바로!!주석 키 입니다!!! 긴 글을 읽기 싫어하실 분들이 있을 것 같기 때문에 바로 핵심을 말하겠습니다. 1. Ctrl + K + C : 자신이 드래그한 영역 주석 처리2. Ctrl + K + U : 자신이 드래그한 영역 주석 해제 예제를 보여드리겠습니다! 아주 간단한 Hello world! 를 출력하는 코드입니다.일정 부분을 드래그 해봅시다. 그리고... Ctrl + K + C !!!!짜잔~ 보다시피 주석처리가 됩니다. 이번엔 주석처리되어 있는 부분을 드래그해 봅시다. 그리고.. Ctrl + K + U !!!!!짜잔! 해냈습니다! Ctrl + a + Ctrl + K + C 하면 생각보다 굉장히 좋은 효과를..
[비쥬얼 스튜디오] 하나의 솔루션에 여러가지 프로젝트 만들기! 혹시 그거 아시나요?! 실은 비쥬얼 스튜디오에서는 솔루션 하나에 몇 가지의 프로젝트를 동시에 만들 수 있습니다!심지어 개별적으로 작동하죠. 저는 가끔씩 다른 사람의 알고리즘을 볼 때도 있는데다른 사람들 코드를 복사해서 붙여넣으면 main문이 겹쳐서 항상 제 코드를 주석처리 하거나 지우는게 너무 불편했습니다!가끔 귀찮아서 제 코드 위에 다른사람 코드를 붙여 넣을 때가 있었습니다.그런데... 그 상태로 다른 사람 코드를 수정하는 경우에는 저의 코드를 찾기 위해 Ctrl + Z와 싸움을 해야했죠! 하지만, 위처럼 다른 사람 코드를 빌드하기 위한 다른 프로젝트를 만든 뒤로는 그런 귀차니즘이 사라졌습니다! 뭐.. 필요한 경우가.. 언젠간 있으실수도 있어요 ㅎㅎ!만드는 법을 알려드리겠습니다! 새 프로젝트를 만들기와..

반응형