프로그래밍(42)
-
알고리즘 : Postfix Notation
1. PostFixNotation사람이 사용하는 중위 표기식 계산은 컴퓨터 계산으로 활용하기 힘들다.계산식의 우선순위를 논리적으로 판단하기 힘들기 때문이다.그로 인해 후위 표기 방법을 사용하며, 중위 표기식을 후위 표기로 변환하는 알고리즘들이 만들어진다. 그 중 하나인 다익스트라가 고안한 방법을 포스팅 합니다. 위에서 우선순위 판단이 힘들어 중위 표기를 후위 표기로 변환하여 계산한다고 했습니다.예로 확인하겠습니다. 계산식1 : 1+2+3+4 -> 우선 순위가 없으므로 계산에 문제 없음.계산식2 : 1+2*3+4 -> 곱하기 연산을 먼저 계산하여야 한다.계산식3 : 1+(2*3-(4-2)+3) -> 괄호부터 연산하여야 한다. ‘계산식 1’의 경우 우선 순위가 없으므로 순차적으로 계산함에 있어 아무런 문제도..
2014.05.20 -
App 개발 : 잠금화면- 홈 키 제어 관련...
반갑습니다. 블로그 주인장입니다.안드로이드 포스팅이 막바지에 이르러 끊어진 것에 대해 글을 적습니다.작년 마지막 홈키 제어 포스팅을 앞두고 취업하게 되었습니다. 그로인해 안드로이드 개발에 관한 모든 부분을 정리해 버렸습니다.(안드로이드 개발자로 취업한게 아닌지라...)현재 안드로이드 개발환경도 갖추고 있지 않으며, 여유로운 상황도 아닙니다. 또한 어플리케이션 레벨에서 (작년 기준으로, 제가 아는 범위내에서) 홈키의 제어는 불가능합니다. 그로인해 같은 효과를 내는 다른 방법을 찾아서 처리했습니다.이 또한 구글에서 특정 OpenAPI 함수를 보안 관계로 막아버려 사용자 입력이 없으면 사용이 불가능하게 되었구요. 그럼에도 필요하신 분이 있으시다면, 세세한 포스팅은 힘들겠지만 간략하게 나마 포스팅하겠습니다.
2014.05.20 -
알고리즘 : ConvexHull (Graham's Scan)
외곽선 찾기(ConvexHull) 알고리즘 1. 개요2차원 평면에 N개의 점이 주어졌을 때, 이들 중 몇 개의 점을 골라 나머지 모든 점을 내부에 포함하는 다각형을 만든다. 이를 볼록 껍질(CONVEX HULL) 이라 한다. 아래 그림은 N=10인 경우의 한 예. 2. 알고리즘 : Graham's Scan 사용(1) P0을 선택합니다. - P0은 y축 가장 아래에 위치한 점을 선택합니다. - 가장 아래 위치한 점이 여러 개 존재 시 x축 가장 좌측을 선택합니다. (2) P0을 기준으로 모든 점들에 대한 각도를 구한다. (3) 구한 점들의 각도 중 가장 낮은 각을 가진 점을 순서대로 P1, P2 선택 (4) 다음 점 Pn을 선택하여, 점을 추가 할 것인지 교체 할 것인지 정한다. - 이전 두 점에 대해 조..
2014.05.01 -
자료구조의 형태
자료구조의 모습 선형 구조 - 자료들 간의 1:1 대응 관계가 성립하여 앞뒤 상호관계가 고정되어 유지되는 구조 비선형 구조 - 자료들 간의 일대다 또는 다대다의 대응관계에 있는 구조 파일 구조 - 보조기억장치에 실제적으로 기록된 자료구조 - 서로 관련된 필드들로 구성된 레코드들의 모임
2014.03.27 -
자료구조 개요
자료구조란?실세계에 존재하는 다양한 자료들을 프로그램이 효율적으로 처리될 수 있도록 컴퓨터상의 자료로 저장하거나 표현 하기위한 형태, 논리적인 구조. 데이터 저장 및 표현 방식 사용되는 곳은? 자료구조를 모르면? 망한다, 고생한다, Data 관리시 지저분해진다...
2014.03.27 -
알고리즘:등고선법을 통한 최단경로 찾기
등고선 알고리즘 길 찾기 알고리즘 중 하나로 등고선 알고리즘을 이용하면 길의 유무와 최단 거리를 찾아 낼 수 있다. 알고리즘1. 시작 점과 도착 지점을 정한다.2. 도착 지점 주위의 이동가능한 길에 번호를 적는다.3. 번호를 입력한 곳 주위의 이동 가능한 길에 번호를 적는다.4. 1~3 반복하여, 시작 지점에 도달하면 종료. 시작지점에 도달하지 못하고 더 이상 길이 없는 경우 길이 없는 것으로 판단. 소스코드등고선 알고리즘(){ //위치 값을 기록할 Queue 선언 std::queue ContourLineQueue 반복문 { 조건문(Queue.empty() && StartPoint==true) { break(); } Precess();//등고선 그리기(1~3 과정 수행) Queue.pop(); } Lin..
2014.03.27