분류 전체보기
알고리즘 4-1강. 깊이 우선 탐색(Depth First Search)
알고리즘 4-1강. 깊이 우선 탐색(Depth First Search)
2013.08.05[탐색 알고리즘 강좌] 해를 찾기위해 전진, 또 전진! 깊이 우선 탐색(DFS, Depth First Search) 이번에는 깊이 우선 탐색(DFS, Depth First Search)이라는 알고리즘에 대해 알아보려고 합니다. 일반적으로 이 DFS 알고리즘을 구현할때는 스택을 이용하고, 트리 혹은 그래프 같은 자료구조에서 데이터를 탐색할 때 사용하는 알고리즘 입니다. 너비 우선 탐색이라고 해서 깊이 우선 탐색과 비슷한게 있는데, 너비 우선 탐색은 다음 강좌에서 소개할 예정입니다. 이 DFS 알고리즘은 더이상 나아갈 길이 보이지 않을 만큼 깊이 들어가는 특징을 지니고 있는데, 만약 나아갈 길이 존재하지 않으면 이전의 위치로 돌아와 다른 길을 선택하여 움직입니다. 이해하기 쉽도록 그래프를 보면서 설명을 하도..
C++/STL 강좌 2편. 함수 객체(Function Object)
C++/STL 강좌 2편. 함수 객체(Function Object)
2013.08.041. 함수 객체(Function Object)이번에는 함수 객체(Function Object)에 대해 알아보도록 하겠습니다. 함수 포인터에 이어 함수 객체는 어떠한 기능일까요? 쉽게 말하자면, 함수 객체는 객체가 함수처럼 동작한다 하여 함수 객체라고 할 수 있는데 우리가 전에 배웠던 연산자 오버로딩에서 ()라는 연산자를 오버로딩하여 객체를 함수처럼 쓸 수 있습니다. 우선은 함수 객체를 알아보기 전에, 간단히 () 연산자에 대해 짚고 넘어가도록 하겠습니다. 우리가 살펴볼 () 연산자는 함수 호출 연산자라고 불리며, 위에서 말했듯이 이 연산자를 오버로딩하게 되면 그 객체는 함수 객체라고 할 수 있습니다. 함수 호출 연산자를 한번 정의하여, 함수 호출 연산자가 도대체 어떤 녀석인지를 봐보도록 할까요? 아래의 ..
알고리즘 3강. 탐욕 알고리즘(Greedy Algorithm)
알고리즘 3강. 탐욕 알고리즘(Greedy Algorithm)
2013.07.25[탐욕 알고리즘 강좌] 매 순간마다 최선의 선택! 탐욕 알고리즘(Greedy Algorithm) 오늘 알아볼 알고리즘은 '탐욕 알고리즘(Greedy Algorithm)' 입니다. 알고리즘의 이름 그대로, 상당히 욕심이 많은 알고리즘 입니다. 탐욕 알고리즘이 어떤 알고리즘이냐면, 매 순간마다 최선의 선택을 하는 녀석입니다. 즉, 선택할때마다 가장 좋다고 생각되는 것을 선택해나가며 최종적인 해답을 구하는 알고리즘이라고 말할 수 있습니다. 그러나, 이 알고리즘을 설계할 때 유의할 점은 전체를 고려하는게 아니라 문제를 부분적으로 나누어, 나누어진 문제에 대한 최적의 해답을 구하므로 전체적인 최적의 해가 될 수 있는 경우가 존재합니다. 한번 예를 보아볼까요? 탐욕 알고리즘의 대표적인 문제로 거스름돈을 계산하는 문..
2013. 07. 24 아이피 추출기
2013. 07. 24 아이피 추출기
2013.07.24몇몇 프로젝트가 모두 완성되면 공개하겠습니다.
2013. 07. 23 VB6 네이버 카페 탈퇴 함수
2013. 07. 23 VB6 네이버 카페 탈퇴 함수
2013.07.23Function CafeSecede(ClubID As String) As Boolean WinHttp.Open "POST", "http://cafe.naver.com/CafeSecede.nhn" WinHttp.SetRequestHeader "Referer", "http://cafe.naver.com/CafeSecedeView.nhn?clubid=" & ClubID & "&from=naver_login" WinHttp.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded" WinHttp.Send "clubid=" & ClubID If InStr(StrConv(WinHttp.ResponseBody, vbUnicode), "탈퇴하셨습니다") ..
2013. 07. 21 URL Shortener
2013. 07. 21 URL Shortener
2013.07.21using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.IO; using System.Net; namespace URLShortener { class clsURLShort { List providerList; string apiKey; public clsURLShort(string apiKey) { this.apiKey = apiKey; this.providerList = new List(); this.getProviderList(); } public string createURLShort(string url, int..
C# 고급 2편. 링크(LINQ)
C# 고급 2편. 링크(LINQ)
2013.07.15링크(LINQ) LINQ라고 들어보셨나요? 여기서 LINQ는 Language-Integrated Query의 약자로, 이는 통합된 질의 언어를 말합니다. 여기서 질의의 사전적 정의는 "의심나거나 모르는 점을 물음"이며, 이 정의 그대로 질의는 무엇에 대해 물어본다는 것입니다. 좀 더 자세히 말한다면, LINQ를 통해 컬렉션 형태를 띄는 모든 데이터에 질의를 할 수 있으며, 이 강력한 기능을 통해 복잡한 구문을 좀 더 간단하게 필터링하거나 정렬할 수 있다는 등의 특징을 지니고 있습니다. 어디 한번, LINQ가 어떤 강력한 기능을 지니고 있는지 천천히 살펴보도록 합시다. List intList = new List(); int[] numbers = { 1, 3, 4, 6, 5, 9, 8, 12, 15, 18,..
프로그램 제작의뢰 받습니다!
프로그램 제작의뢰 받습니다!
2013.07.15프로그램 제작 의뢰를 모두 받습니다. 프로젝트를 진행할 때 사용되는 언어는 C/C++, C#, JAVA, VB 모두 가능합니다. 단, 아래의 조건에 포함되어 있는 제작 의뢰는 받지 않습니다. 1. 명백히 프로그램의 제작 의도가 불법적인 경우2. 프리서버와 관련된 경우 제작 의뢰에 관련된 문의는 su6net@nate.com 에 친구추가를 해주세요. 다른 사항이라도 괜찮습니다.
학교 기말고사가 끝났습니다.
학교 기말고사가 끝났습니다.
2013.07.10드디어 1학기 기말고사가 끝났네요. 이번주 월요일부터 수요일까지 학교에서 시험을 치루는데 더워서 죽을뻔 했습니다. 곧 방학이니, 윈도우즈 시스템 프로그래밍이나 리버스 엔지니어링과 알고리즘에 관련된 글을 쓰려고 합니다. 그리고 여러가지 프로젝트를 진행해보면서 블로그에 코드를 공개할 생각이구요, 좀 더, 이것저것 해 볼 생각입니다. (7월 25일 정도 가면 갑자기 블로그 글이 뜸해질 수 있습니다. 대회 준비때문에 아마도 바쁠 것 같습니다.)
2013. 06. 29 ESMaker
2013. 06. 29 ESMaker
2013.06.29
VB6 네이버 비밀번호 변경
VB6 네이버 비밀번호 변경
2013.06.18아래는 네이버 비밀번호 변경 코드입니다. 비밀번호 변경에 성공하면 True를 반환하며, 실패한다면 False를 반환합니다. 그리고 아래의 createRsaKey 함수는 아래의 자바스크립트 파일을 이용한 것이니, Microsoft Script Control를 참조하고 ScriptControl 객체를 생성하여 컴파일을 거치고 스크립트 내의 createRsaKey를 호출하시면 되겠습니다.Public Function ChangePassword(passwd As String, newPasswd As String) As Boolean Dim SessionKey$, keyName$, eValue$, nValue$, id$, token$ WinHttp.Open "GET", "https://nid.naver.com/us..
시스템 프로그래밍: 컨텍스트 스위칭(Context Switching)
시스템 프로그래밍: 컨텍스트 스위칭(Context Switching)
2013.06.10[시스템 프로그래밍] 컨텍스트 스위칭 (Context Switching) 컨텍스트 스위칭(Context Switching)이 무엇일까요? 우리가 전에 보았던 '시스템 프로그래밍: 프로세스 스케줄링(Process Scheduling)'이라는 글에서 프로세스는 총 5개의 상태로 구분할 수 있다고 말했었습니다. 그 중에서 준비(Ready) 상태인 프로세스들 중에서 스케줄러의 선택을 받은 하나의 프로세스가 실행 중(Running) 상태로 상태가 전이됩니다. 컨텍스트 스위칭(Context Switching) 예를 들어서, Ready 상태인 A 프로세스와 Running 상태인 B 프로세스가 있고 인터럽트 요청에 의해 서로 상태가 전이된다고 가정합니다. 이 때, A 프로세스가 Ready 상태로 전이되고, B 프로세스..