[BackTracking] NQueen
문제 출처 : http://www.jungol.co.kr/prog/Hanal/hanalView.php?qs_code=1889 나의 답 : 아래 코드이다.. 하지만 N = 13일경우 1초내에 계산이 안되서 accepted되었다..ㅠㅠ 속도 향상할 수 있는 point를 찾아야 겠다.. #include #include #define DEBUG 0 #define MAX_QUEENS 14 int g_cols[MAX_QUEENS]; // represent of chess board // g_cols[index] : column, index : row int g_num_queens; int g_num_possible_sequence; void SetInputFromFile(const char* fileName); v..
2012.11.20
[Greedy] 저울
출처 : http://www.jungol.co.kr/prog/Hanal/hanalView.php?qs_code=2499 2011.KOI.전국.초등부 #include #define DEBUG 1 #define MAX_WEIGHTS 1000 void SetInputFromFile(const char* fileName, int *num_weights, int *weights); void PrintAnswerToFile(const char* fileName, int min_umw /*minimum unmeasurable weight*/); int GetMinUnmeasurableWeight(const int num_weights, int *weights); void SortWeight(int num_weight..
2012.11.19
[Greedy] 회의실 배정
출저 : 정올 (http://www.jungol.co.kr/prog/Hanal/hanalView.php?qs_code=1370) #include #define DEBUG 1 typedef struct { int requested_order; int start_hour; int end_hour;}MEETING; MEETING g_requested_meetings[501];int g_num_requested_meetings;MEETING g_scheduled_meeting[501]; int ScheduleMeetings();void SortRequestedMeetings();void PrintRequestedMeetings(); // input outputvoid SetInputFfromFile(char* ..
2012.11.11
오일러 회로와 해밀턴 회로
자료 구조 시간에 배운 그래프중에서 오일러 회로와 해밀턴 회로가 헷갈려서 정리를 해 보았습니다. 사실 고등학생인 사촌동생이 수열과 관련지어서 그래프 문제를 질문했는데 헷갈려서 부끄러워 책좀 찾아 봤습니다. [출처 : 천재교육 이산 수학 자습서 ] - 혹시 문제가 된다면 삭제 하도록 하겠습니다. 오일러 회로와 해밀턴 회로를 쉽게 이해 하기 위해서 신문 배달원과, 신문 배송 담당자이야기만 기억 하면 되겠습니다. [신문 배달원이 처한 문제] 신문 배달을 시작한 철이는 며칠 동안 신문을 돌리다 보니 지나갔던 길을 또 지나가는 경우가 있는 것을 알게 되었다. 다음 그림은 배달 지역의 지도인데 모든 깅을 반드시 지나가야만 할때, 철이는 지나갔던 길을 다시 지나가지 않고 신문 배달을 잘 마칠 수 있을까? [신문 배..
2010.04.30
[정렬 알고리즘 with haskell 1탄] Insertion, Selection, Merge, Quick Sort
하스켈로 알고리즘을 구현하는 것이 좀더 큰 목적이지만, 그렇다고 알고리즘 구현에 뛰어난 것이 아니기 때문에 복습도 해볼겸해서 정렬알고리즘을 하스켈로 구현하고 각각의 특징을 정리 해보려고 합니다. 그 1탄으로 Insertion sort, Selection sort, Merge sort, Quick sort입니다. 오늘은 어려운 코드가 아니므로 알고리즘 구현에 대한 자세한 설명은 생략하는 것이 좋을 것 같습니다. 일단 코드 부터 보겠습니다. 기존에 C와 다른 코드 이므로 좀더 신중하게 보세요.. 하스켈을 모르셔도 읽는데는 무리가 없을 것이라고 생각합니다. (필요한부분은 설명을 하도록 하겠습니다.) -- this function is inserttion sort insert :: Ord a => a -> [a..
2010.02.27
no image
[지식의재구성]칸토어의 대각선법
오늘 파일처리 첫수업에서 교수님께서 갑자기 이산수학 이야기를 끄집어 내셔서 결국 파일처리가 어떤 과목인가 보다는 이산수학2 수업이 되어 버렸다. (어쩌면 오토마타2인가.. -_-;; 자료구조2?) 먼가 이 내용이 비둘기집의 원리에서부터 출발하였는데... 왜!!!!!! ;;;;;;;;;;; 당췌 모를일이다... 이번학기 첫번째 과제중의 대각선법에 대한 내용이다. [증명] 실수의 집합은 비가산집합이다. (칸토어의 대각선법) - 이때의 비가산집합이라는 것은 자연수의 성질 중 하나인 countable의 반대되는개념으로 비가산집합이라는 말을 쓴다. (countable은 무한 하지만 셀수있는 - 실제로 수직선상에 표현을 하자면 일정한 간격을 가지고 존재하므로 어떤 임의의 수를 선택한다면 그 수에 일정간격을 더하거나..
2008.03.03
[알고리즘] 점화식(조합)
n개중에서 r개를 뽑는 경우는 nCr이라는 공식을 이용하여 풀수 있다. nCr = n! / r! x (n-r)! 이다 하지만 이것을 컴퓨터에게 그대로 적용시켜 계산하게 되면 오버 플로우가 일어날 수 있다. n!의 경우 n값이 조금만 크더라도 n!값이 엄청 커진다. 이를 방지 하기 위해서 점화식을 이용해서 풀면 된다. nCr = (n - r + 1) / r * nCr-1 nC0 = 1( r = 0일때) 이런식으로 점화식을 이용해서 풀면 오버 플로우를 막을 수 있다. double combination( int n, int r ) { int i; double sum; sum = 1; for( int i =1; i
2008.02.27
뱀 문제
멤버십 알고리즘 테스트에 나온 문제다. ACM에 나왔던 문제라는데 아직 100명정도만 풀었다는데... 지금 풀고 있는데 과연 풀어 낼까?ㅎㅎ
2008.02.23
가짜 구슬 맞추기
치과에 갔다고 기다리는 동안 신문에난 문제이길래 풀다가 재밌어서.....^^;; 어린이용이었던거 같던데...나름 괜찮았다^^;; 어린이용이니까 후딱 풀어야 겠지?ㅎㅎ 1~8까지 번호가 매겨진 구슬이 있다. 이 구슬 중 두개는 가짜 구슬이다. 가짜구슬과 진짜구슬은 각각 무게가 같다. 아래 그림은 무게를 제어 본 결과이다. 아래 그림을 보고 몇번이 가짜 구슬인지 알아맞혀 보시오. 또한 가짜구슬이 더 무거운지.. 아님 진짜 구슬이 더 무거운지 알아보시오.. 일단 두번째 그림을 보면 .. 2,3,4와 5,6,7이 무게같다. 즉 모두 진짜 구슬이거나, 양쪽에 가짜 구슬이 하나씩 들어가 있다는 것을 알게 된다 모두 진짜라면, 즉 2,3,4,5,6,7이 진짜라고 가정하면 세번째 그림에 의해서 거짓이라는 것을 알 수 ..
2008.01.16