본문 바로가기

For all category

PKU 2039. To and Fro. AC #include #include char pwd[210]; int n, len; void rev(char *a, char *b) { char tmp; for(; a 더보기
A la russe 곱셈 알고리즘 일반적인 곱셈은 315 x37 -------------------------------- 2205 945 -------------------------------- 11655 315 x 47= (300 + 10 + 5) x 47 = (47 x 300) + (47 x 10) + (47 x 5) = 11655 이렇게 계산합니다. 정수 x 한 자리 정수 더하기 우리 눈엔 편하지만 융통성없는 컴퓨터님은 이런 수행을 하기가 참 힘드시죠. 다른 방법으론 A la russe가 있습니다. 1. 두 개의 정수를 a, b의 위치에 각각 쓴다. a가 홀수이면 b위치의 수를 c 위치에 쓴다. 2. a를 2로 나누고 b에 2를 곱한 수를 각각 다음 a, b위치에 쓴다. 이 때 a를 2로 나눈 값이 홀수이면 b위치의 수를 c위치.. 더보기
PKU 1163. The Triangle The Triangle Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 13569 Accepted: 7789 Description 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (Figure 1)Figure 1은 숫자로 이루어진 삼각형입니다. 맨 위에서 시작해서 맨 아래의 한 지점에서 끝나는 임의의 길을 지나는 숫자들의 합들 중 가장 큰 것을 계산하는 프로그램을 만드세요. 각 스텝에서는 왼쪽아래 또는 오른쪽아래로 갈 수 있습니다. Input 당신의 프로그램은 표준 입력으로 읽어들입니다. 첫째 줄은 하나의 정수 N을 포함하는데, 이것은 삼각형의 행의 개수를 의미합니다. 그 뒤의 N개 줄은 삼각형의 데이터를 서술합니다. 삼각형의 행의 개수는 1.. 더보기
PKU 1163. The Triangle The Triangle Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 13569 Accepted: 7789 Description 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 (Figure 1)Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagonally down to the left or diagonally down to the right. In.. 더보기
api좀 배운 기념으로 만든 그림판 win32api좀 열심히 공부하고 만들었습니다. 이거 만드느라 문제도 못풀고......... 더보기
음?... 후기랄까요? 안녕하세요~ 테슬라 입니다. 만우절이에요~ 모두 낚이셨죠? 위에건 무시하시고요~ 요번에 이진트리와 그래프를 했습니다. 네. 제가 많이 미숙하여 부족한 부분이 있었던 기억이 새록새록하군요... 일단 그래프는 이걸로 끝을 본 것 같습니다. 제가 알고 있는 부분이 여기까지 인지라... 사실 제가 공부했던 경우에는 그래프 뒤에 최단거리를 구하는 알고리즘이 소개되었었는데요. 제가 그 부분은 아쉽게도 모르는 부분이라 설명해드리기가 힘들 것 같습니다. 제가 나중에 학습하여 포스트의 기회를 가지도록 하겠습니다. 다음 포스트 주제를 사실 정렬을 하고자 했지만, 아쉽게도 리턴군이 해서... 해서 다음 포스트 주제를 못정했어요...!!!! 떡밥이 다 떨어진 것이죠...!!! 아직 배움이 얕은지라 무엇을 해야할지 구체적으로 .. 더보기
쩝. 나는 매일 글들을 다음블로거뉴스로 발행하기 위해 계속 기다리는 존재 ㄱ- 더보기
이제 문제 푸는사람이 나랑 Mr.K만 남은건가 ㄱ- 여러분. 후딱 풀어 해치웁시다. -_-; 더보기
Design Pattern & Network, 3. Observer & Client. 아.... 코드를 첨부하긴 해야 하는데, 미리 만들어놓은 레퍼런스가 없으니 좀 곤란하군요. 한번 따로 준비해서 올려야 할듯... ----------------------------------------------------------------------------------------- 옵저버 패턴이라는건.. 요런 놈을 연상시키게도 하지만 -_-;; 이름만 같을 뿐, 약간은 다른 기능을 가집니다. 스타크의 옵저버는 숨어있는 것들을 찾아냅니다. 반면, 옵저버패턴은 자신에게 등록된 클라이언트들에게 '통보'를 하는 역할을 갖습니다. 가장 간단한 예를 들자면 바로 이거지요. 자신의 통신사에 등록된 모든 고객에게 재난 문자나 여러 정보를 통보해주는 서비스. 그 서비스를 해주는 객체가 옵저버입니다. 이러한 패턴이.. 더보기
Tesla's post 연기 공지 우아 이거... 이번주는 단체로 바쁘군요. 제가 사실 요즘 들어서 제 시간에 포스팅을 못하고 있습니다.(으, 죄송합니다.) 다음주까지는 아마 살짝 이런 현상이 지속될 거 같습니다. 아 그리고 오늘자 포스트는 수요일에 올라갈 것 같습니다. 넓으신 아량으로 용서해주세요. 더보기
[공지] 포스팅에 관해 안녕하세요 Mr. K입니다 3월 14일 포스트를 끝으로 현재 주간포스팅은 안하고 있습니다만 dlbo군이 공지하나 올려달라고 해서 끄적여봅니다 =_= 최근 다섯개의 포스트에서는 고등학교 과정에서 배우는 행렬에 관해 대충 끄적였습니다 추가로 선형대수학에 나오는 행렬의 성질? 같은 것에 대해 조금 더 끄적일까 했으나 접어놓은 상태입니다; 나중에 다시 땡기면 끄적이는걸로 하지요 -_-; 그래서 앞으로 한동안은 sparking군과 더불어 문제번역을 할 생각입니다 (_ _) 더보기
어느 부분이 속도를 잡아먹나요? #include #include using namespace std; class bigint { private: char sign;//+:0, -:1 vector arr; public: bigint(); bigint(bigint &); bigint(char *); bigint(int); bigint operator=(char *); bigint operator=(int); friend bigint operator+(bigint &, bigint &); friend bigint operator*(bigint &, bigint &); void print(); }; bigint::bigint() { sign=0; arr.insert(arr.begin(),0); } bigint::bigint(bigint &sr.. 더보기
이번주는 쉽니다. 황금같은 짝수주 토요일에 새벽에 학교에 불려가서 시험을 보고 오니 랑 사이가 땡기네요. 엉헉. 살려주세요. 더보기
Mr.K 포스트 안올라왔다. 리턴이야 4월부터 재개한다 했고. Mr.K는 -_-; 더보기
지금 정말 신기한게 36시간째 금연중. -_- 내가. -_-;; 더보기
PKU 2039. To and Fro. [판정:AC] #include int dscanf( int *pnum ) { scanf("%d", pnum); return *pnum; } void main() { char string[256]; int column; while( dscanf(&column) != 0 ) { int i, j; int quo; // quotient int length; int key; char temp; scanf("%c", &temp); for( i = 0; i 더보기
그래프 - Prim식 최소신장트리?? 안녕하세요~ 테슬라 입니다. 저번에 이어서 이번 포스트는 최소신장트리 구현방식중에 하나인 Prim식 최소신장트리에 대해서 알아보도록 합시다. 저번 포스팅때 했던 Kruskal식을 생각해보죠... 그냥 가중치가 작은 순서대로 간선들을 이어서 하나의 최소신장트리를 만들었죠? 하지만 그 방법은 생각해보면 여러개의 트리를 잇고 이어서 하나의 큰 트리를 만드는 것이라고 생각할 수 있습니다. 예를 들어볼까요?이런 그래프가 있다고 하죠. Kruskal식의 경우 라면, 이런 방법이지요? 이때 보시는 것처럼 여러개의 트리가 생긴 뒤 마지막에 모두 이어지는 모습을 보실 수 있으실거에요. 그런데 Prim식은 그런식으로 나눠져있다가 연결되는 방식을 거부한다는 것이지요. 말인즉슨, 하나의 트리에 계속 하나하나 간선들을 추가해서.. 더보기
PKU 2039. To and Fro. AC get -_-! #include #include #include char temp[256], buf[256]; int main() { int cnt, i, j, k, len; while(scanf("%d", &k)) { cnt = 0; if (k == 0) { break; } scanf("%s", buf); len = strlen(buf); for (i = 0; i < k; i++) { for (j = i; j < len; j += k) { if ((j / k) % 2 != 0) { temp[cnt++] = buf[((j / k) + 1) * k - 1 - (j % k)]; } else { temp[cnt++] = buf[j]; } } } temp[len] = '\0'; puts(temp); } } .... 그냥 단순한.. 더보기
PKU 2039. To and Fro To and Fro Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 4308 Accepted: 2832 Description Mo와 Larry는 메세지를 암호화하는 한 방법을 고안해냈습니다. 그들은 먼저 은밀히 열의 수를 정하고 그 열을 따라 아래로 메세지를 (글자만) 써내려간 후, 글자들의 배열을 직사각형으로 만들기 위해 임의의 글자를 패드로 붙입니다. 예를 들어, 메세지가 "There’s no place like home on a snowy night" 이고 5개의 열이 있다면, Mo는 아래와 같이 쓸 것입니다. t o i o y h p k n n e l e a i r a h s g e c o n h s e m o t n l e w x 하나 주.. 더보기
PKU 2039. To and Fro To and Fro Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 4308 Accepted: 2832 Description Mo and Larry have devised a way of encrypting messages. They first decide secretly on the number of columns and write the message (letters only) down the columns, padding with extra random letters so as to make a rectangular array of letters. For example, if the message is "There’s no place like.. 더보기
Minsangk님이 이번에 합류합니다. http://minsangk.com 블로그를 운영하고 계시고, hello-world의 등록정보에 의하면 Sparking군과 Mr.K군과 같은 학교이군요 -_-! MinsangK님께서는 등록 확인 후 댓글로 원하는 요일과 카테고리내 원하는 세부 카테고리의 이름을 달아주시면 바로 추가해 드리겠습니다. 더보기
이번주 오늘까지의 임시 통계 월별, 일별 방문자 수와 추이를 확인할 수 있습니다. 통계 보기 현재까지의 방문자 수 : 24,531 초기화 월별 방문자 수 2009/03 6,191 2009/02 2,283 2009/01 4,019 2008/12 4,022 2008/11 3,049 2008/10 2,321 2008/09 2,560 2008/08 84 일별 방문자 수 2009/03/24 289 2009/03/23 384 2009/03/22 482 2009/03/21 403 2009/03/20 283 2009/03/19 276 2009/03/18 314 2009/03/17 679 2009/03/16 332 2009/03/15 399 2009/03/14 304 2009/03/13 193 2009/03/12 179 2009/03/11 218 .. 더보기
들보군 자네 하는일 없으면 통계 보고서좀 하나 써주지 않겠나? ㅋㅋ 그리고 지난번에 헬프요청한 글에 Fill이랑 _Construct를 오버라이딩해줘야된다고 했는데 난 어찌해야되는지 잘 모르겠으니 임의로 클래스를 하나 만들어서 보여줏메 -_-; 더보기
Tesla's Post 연기 공지 으악 요즘엔 제시간에 포스트를 한적이 굉장히 오래전으로 느껴지네요. 지금도 내일 시험이라 깜빡했다가 Dlbo군보고 떠올랐습니다. 요즘 정신을 어디다 두고 다니는지... 포스트는 수요일까지 올리도록 하겠습니다. 죄송합니다. 더보기
Design Pattern & Network, 2. Singleton & Server. 푸후. 디자인패턴과 네트워크 포스팅의 첫삽이군요. 아직 완전히 결합시켜 이해중인게 아니라서 제대로 써 질지 고민됩니다. ------------------------------------------------------------------------------ Singleton 패턴이란 녀석이 디자인패턴에 있습니다. 디자인패턴은 객체지향 언어로 프로그래밍할 경우 잡는 하나의 기본 골격인데요. Singleton 패턴은 이런 골격중 하나이지요. Skeleton이랑 비슷하다고 이런건 아닙니다 -_-; 아 깜찍해 -_- Singleton 패턴은 single이라는 앞단어와 관련있습니다. "유일한!" 객체라는 겁니다. 왜 Unique가 아니냐고 물어보면 할말 없습니다. GoF(Gang of Four, 디자인패턴의 .. 더보기
환타님이 토요일로 옮겨서 빈 수요일 자리에 한명을 더 섭외해 보는건 어떨까요? 분위기도 살릴 겸 한분정도 더 모셔와도 괜찮을꺼 같은데.. 다들 어떠신지? 더보기
UVa 324. Factorial Frequencies. AC get -_- import java.math.BigInteger; import java.util.*; public class Main { public static void main(String[] args) { int n, i; int[] data; BigInteger a; String temp; Scanner sc = new Scanner(System.in); data = new int[10]; while (sc.hasNextInt()) { n = sc.nextInt(); for (i = 0; i < 10; i++) { data[i] = 0; } if (n == 0) { break; } a = BigInteger.ONE; for (i = 1; i 더보기
비트연산 활용 모두들 비트연산은 그냥 안배우고 넘어가셨겟죠.(그렇다고 말해줘요) 비트연산은 &, |, ^, ~, 가 있습니다. 식상한 설명 & AND 둘 다 1이면 1 | OR 하나만 1이면 1 ^ XOR 다르면 1 ~ NOT 1이면 0, 0이면 1 RIGHT SHIFT 오른쪽으로 비트이동 비트란 말이 생소하다면. 32비트 정수형 변수라고 불리는 int는 32자리의 2진수로 구성되어있습니다. 4102100 = 11 1110 1001 0111 1101 0100 비트연산은 이진수에대한 숫자놀음과 같습니다. & 원하는 비트만 변경 만약 32비트에서 4번째와 16번째 비트만 1로 만들고 싶을 땐 a=0x10010000 0x는 16진수를 나타내고 0x10010000는 2진수로 0001 0000 0000 0001 0000 000.. 더보기
UVa 324, PKU 1454. Factorial Frequencies. [판정:AC] 저도 처음에는 Dlbo군의 판정과 같은( 아마 같을 ) In the queue였습니다 그래서 일단 pku에 먼저 질러보자 하는 마음으로 질렀습니다 .. 두번의 CE를 받으면서 채점 기준이 좀 까다롭다는 생각을 했습니다 채점을 위해서는 형식을 통일해야한다는건 잘 알지만, 그냥 짜증나더라고요 ㅋㅋㅋㅋ pku에서 AC받고 uva로 넘어갔더니, 거기에서도 CE가 떠있길래 ( uva에 처음 제출한 소스와 pku에 처음 제출한 소스가 동일 ) pku에 마지막으로 제출한 소스를 그대로 uva에 제출했더니 AC가 나오더군요, 다행히 ㄷㄷ 소스를 올릴까 말까 했는데, 일단 올려봅니다 알고리즘은 매우 간단합니다 1~366의 범위를 갖는 자연수 k에 대해 k!의 값을 구해서, 그것의 각 자리수가 무엇으로 이루어져있는가를 보.. 더보기
그래프 - Kruskal식 최소신장트리?? 안녕하세요~ 모두 잘 지내시죠~ 테슬라 입니다. 오늘은 저번 포스트에 이어 최소신장트리에 대해서 하고자 합니다. 오늘의 주제는 무엇인고 하니 최소신장트리를 구성하는 방법중에 하나인 Kruskal식의 최소신장트리입니다. Kruskal식이란 무엇인가? 하니 가중치가 적은 순서대로 연결하는 방식을 말합니다. 각각의 간선마다 가중치가 존재하지요? 이 가중치들을 적은 순서대로 놓아보세요. 그 다음에 차근차근 작은 순서대로 간선들을 연결하지요. 단! 저번 포스트에서 말씀드린대로 최소신장트리는 사이클이 없어야겠죠? 오늘도 역시 예를 들어보지요~ 자 이 그래프에는 5개의 간선들이 존재합니다. (저번거와는 가중치가 다릅니다. 네) (1,2), (1,3), (1,4), (2,3), (3,4) 이렇게 5개가 있습니다. 이걸.. 더보기