본문 바로가기

For all category

PKU1218. The Drunk Jailer. Ac get =_=... #include #include using namespace std; int main() { int n, temp, i; cin >> n; for (i = 0; i > temp; cout 더보기
파일시스템 - 01. 개요. 으흠... 한동안 파일시스템에 대해 휘갈겨 볼까 합니다. FAT12부터 시작해서, FAT16과 FAT32, NTFS, Ext에 대해 대략적으로 써 볼 생각입니다. FAT는 마이크로소프트의 윈도우즈를 위한 파일 시스템 시리즈이고, File Allocation Table의 약자라나 뭐라나... 그리고 NTFS는 New Technology File System의 약자라고 하는군요. NTFS는 윈도우즈 NT계열의 1.0버젼부터 시작해서 FAT와 함께 커왔지만, FAT와는 다르게 애초에 큰 용량의 하드디스크를 타겟으로 한 파일시스템입니다. 그리고 Ext파일시스템은 리눅스의 파일시스템으로, Ext2 파일시스템은 유닉스의 UFS를 기반으로 만들어진 파일시스템이라고 합니다. ------------------------.. 더보기
PKU 1218. THE DRUNK JAILER 술 취한 간수 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 10751 Accepted: 6990 설명 n 개의 감옥방이 긴 복도에 한없이 붙어있는 감옥이 있습니다. 각 감방에는 죄수들이 있고 문은 잠겨있습니다. 어느날, 간수가 너무 지루해져서 게임을 하나 하기로 했습니다. 1라운드에는 간수가 위스키를 마시고 모든 감방의 문을 엽니다. 2라운드에는 간수가 위스키를 마시고, 2의 배수번호의 감방 문을 잠급니다. 3라운드에는 위스키를 마시고 3의 배수인 감방들에 가서 잠겨있다면 열고, 열려있다면 잠급니다. 이러한 작업을 n라운드까지 반복한 뒤에 마지막 위스키를 마시면 간수는 술에 취해 잠이 듭니다. 죄수들중 일부는 자신들의 감방이 열린 것을 깨닫고 .. 더보기
PKU 1218. THE DRUNK JAILER THE DRUNK JAILER Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 10751 Accepted: 6990 Description A certain prison contains a long hall of n cells, each right next to each other. Each cell has a prisoner in it, and each cell is locked. One night, the jailer gets bored and decides to play a game. For round 1 of the game, he takes a drink of whiskey,and then runs down the hall unlocking.. 더보기
[공지] reuent 이탈, tesla 복귀 예정, Mr.K 임시 중단입니다. Reuent 본인이 직접 복귀하지 않겠다는 의사를 표현했고, tesla군은 곧 복귀한다고 합니다. Mr.K는 사정상 포스팅을 지속할 수 없어 일단 임시중단을 요청했습니다. 환타님은 이번에 포스트가 올라오지 않았는데, 중, 고등학생들 이제 시험기간이니 아마 2주간은 포스트가 없지 않을까 예상됩니다. 더보기
프로그래밍이란? WoC 2008에서 CCL의 윤종수 판사님의 말씀이었지요. "개발자는 예술가다. 프로그램은 개발자의 예술이다." 라고. 그렇심다! 프로그래머는 코드를 통해 세상과 소통합니다. 개발자의 프로그램은 프로그래머의 내적 세계를 표현하고, 그 사람의 철학을 담고 있습니다. 읽기 힘든 코드나 읽기 쉬운 코드나, 더 빠른 코드나 더 느린 코드나, 호환이 되는 코드나 종속적인 코드나 모두 코더의 필요에 의해서 유저와, 컴퓨터와, 혹은 개발자가 의도한 상대에게 개발자의 의미를 전달하는 매개체입니다. 프로그래밍은 또한 "표현" 입니다. 아까 쓴 것처럼, 컴퓨터나, 특정 대상에게 의미를 "표현"하는 수단인 것이지요. 그리고 그 자체로 목적이 됩니다. 개발자의 표현은 코드로, 프로그램으로 나타납니다. 남들이 말로, 기획서로,.. 더보기
3. 가장 큰 소인수 찾기 The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ? 13195의 소인수는 5, 7, 13, 29다. 600851475143의 가장 큰 소인수는 무엇인가? 소수 판단 알고리즘처럼 600851475143의 제곱근에서 수를 감소하며 소인수인지 확인하면 됩니다. 가장 큰 소인수가 2일 리는 없으니 홀수만 검사합니다. #include #include int is_prime(int n) { int i, sqrn; sqrn = (int)sqrt(n); for (i = 2; i 더보기
Dlbo's Post 연기 공지. --------------------------------------------------------------------------------- 사유 : 일정관리 실패 -_-; 연기일자 : 6. 9. 화. 예상 복귀 일자 : 6. 16 화. --------------------------------------------------------------------------------- ... -_-;; 이번주 한주만 쉬겠습니다 -_-; 더보기
2. 4000000 이하의 피보나치 수열 중 짝수들의 합 구하기 Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... Find the sum of all the even-valued terms in the sequence which do not exceed four million. 피보나치의 새로운 항은 앞의 두 항을 더해 만들어진다. 1과 2로 시작하는 피보나치 수열의 처음 10개의 항: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... 4000000(4백만)이하의 피보나치 수열중 .. 더보기
PKU [2234]. Matches Game. [WA] #include int main() { int maximum_cnt; int temp; int _register; while(scanf("%d", &maximum_cnt) != EOF) { _register = maximum_cnt; while(maximum_cnt--) { scanf("%d", &temp); } if(_register % 2 == 0) { printf("No\n"); } else { printf("Yes\n"); } } return 0; } WA 입니다. 님 게임(Nim Game) 의 일종인 것 같습니다만, 이 문제는 가져올 수 있는 갯수의 제한이 최대 쌓여진 뭉치의 갯수더군요. 그래서 간단하게 '뭉치의 갯수가 짝수이면 첫번째 플레이어는 이길 수 없는 거고, 홀수라면 이기겠다.' ..... 더보기
코드 최적화, 어떻게, 왜 하는걸까? 아... 비가 쩔어주게 오네요. 책 제본뜨러 가야 하는데;; ---------------------------------------------------------------------------------------- 요즘은 컴퓨터가 워낙에 빨라져서 코드 최적화에 대해 대학이나 여타 여러곳에서 잘 언급을 하지 않는 것 같습니다. 그래도 KOI 준비하는 학생분들은 시간적 옵티마이즈에 목숨을 걸지요 =ㅁ= 최대한 빠르게 동작해야 하니까요. 예전의 느린 컴퓨터에서는 시간을 줄이기 위한 최적화가 종종 이루어 졌습니다. 물론 요즘도 실행시간을 줄이기 위한 시도(암호깨기...)가 종종 이루어 지지만 말이지요. 추...추억의 286입니다 -_-; 저때만 해도 느린 컴퓨터 덕분에 시간 차원의 옵티마이즈가 필요했습니다.. 더보기
PKU 2234. Matches Game. AC get -_-;;; #include int main() { int n, k, sum; while (~scanf("%d", &n)) { sum = 0; while (n--) { scanf("%d", &k); sum ^= k; } if (sum) { printf("Yes\n"); } else { printf("No\n"); } } return 0; } 쩝... 초 간결한 코드입니다. -_-;; 그냥 단순하게 정해진 최대치를 서로 계속 가져간다 했을때, 정해진 최대치에 맞아 떨어져서 최종 갯수가 0이 아니면 이긴거고, 0이면 진거지요 뭐 =ㅁ=;; 더보기
PKU 2234. Matches Game 성냥 놀이 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2658 Accepted: 1536 설명 간단한 게임이 있습니다. 이 게임은 두 명의 플레이어와 여러 개의 쌓여진 성냥개비가 있습니다. 두 명의 플레이어는 턴을 나누어서 진행합니다. 각 턴을 진행하는 플레이어는 쌓여진 성냥개비에서 임의의 성냥개비를 덜어냅니다(물론 덜어낼 성냥개비는 0개이어서는 안되고, 덜어낼 성냥개비는 한 뭉치 안에서만 덜어내야 합니다). 한 플레이어의 턴이 끝나고 나서 성냥이 하나도 남지 않으면, 그 플레이어의 승리가 됩니다. 두 명의 플레이어 모두는 매우 똑똑하다는 가정을 해봅시다. 당신이 할 일은 먼저 플레이 하는 사람이 게임에서 이길지 질지 를 알아내는 것입니다. .. 더보기
PKU 2234. Matches Game Matches Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2658 Accepted: 1536 Description Here is a simple game. In this game, there are several piles of matches and two players. The two player play in turn. In each turn, one can choose a pile and take away arbitrary number of matches from the pile (Of course the number of matches, which is taken away, cannot be zero and cannot be .. 더보기
fanta's 카테고리 밑에 Project Euler카테고리 추가해주세요. 헤헤헤헤헤 주제를 정했습니다. 심플스에서 풀어본 문제들의 원본이 있네요 ㅎㅎ 더보기
1. 3또는 5의 배수 더하기 If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000. 10미만의 3또는 5의 배수를 찾으면 3, 5, 6, 9가 나온다. 1000미만의 3또는 5의 배수들의 합을 구해. 나머지연산으로 배수인지 확인만 하면 되는 간단한 문제입니다. #include int main() { int i, sum; for(sum=0, i=3; i 더보기
PKU 2243. Knight Moves. AC #include int table[8][8]; void fill(int y, int x, int n) { if(table[y][x] 7 || x>7 || y 더보기
최근 얼마 전부터 textarea 내부의 글씨체가 다소 바뀐건 나만 이런거?; (짤은 본인의 Jinjin 솔루션 -_-;) 예전엔 글씨가 저렇게 굵지 않았는데 -_-; 더보기
자유에는 그만큼의 책임이 따른다. 프로그래밍 포스트 치고는 뭔가 오묘한 제목이지요? 요즈음 이것저것 해보다가 갑자기 든 생각이라 포스트로 구성해 보았습니다. ------------------------------------------------------------------------------------------ 자유에는 책임이 따른다고 하지요? 같은 밥솥으로... .... 요런 밥을 탄생시킬 수도 있고, 요런 밥이 나올 수도 있습니다 -_-; 밥 하는 사람의 책임에 따른 문제이지요. 프로그래밍 또한 같습니다. 프로그래밍의 자유도, 즉, 사용할 언어의 자유도에 따른 책임은 스스로 져야 한다는 것이지요. 어셈블리언어의 어셈블러는 아주 기초적인 문법만 체크할 뿐, 데이터와 코드의 구분도 잘 안해줍니다. (MASM의 구분니모닉은 예외로 .. 더보기
최대 3주만 쉴게요 (-) 사유 : 기말고사 13주차니까 앞으로 최대 3주.. 꽥 ㅇ 더보기
PKU 1454, UVa 324. Factorial Frequencies. AC #include #include #include int n; typedef struct { char *start, *end; int len; }bigint; void make(bigint *a, char *string) { a->len=strlen(string); a->start=realloc(a->start,(a->len+1)*sizeof(char)); memset(a->start,0,sizeof(char)*(a->len+1)); a->end=a->start+(a->len-1); strcpy(a->start, string); } void delete(bigint *a) { free(a->start); } void init(bigint *a) { a->len=1; a->start=calloc(2,size.. 더보기
PKU 1089. Intervals. [판정:WA] 위의 3건이 가장 최근에 제출해본 것입니다 그중 첫번째(Run ID: 5178307)는 검토해보니 정말 틀린부분이 있어서 WA가 났고 두번째(Run ID: 5192652)는 검토해보니 최악의 경우 O(n²)까지도 나올지도 모르겠더군요 (무작정 입력을 받아서 전부 정렬한 뒤에 겹치는 부분을 출력에서 생략하는 방식이라 -_-;) 그래서 팀블로그에 가장 마지막으로 끄적인 Intervals 풀이의 알고리즘과 유사하게 풀어보았습니다만 왜 WA가 또-_- 나오는지는 모르겠네요 #include using namespace std; class Interval { public: int lower; int upper; Interval() { lower = 0, upper = 0; } Interval( int a, int .. 더보기
Design Pattern & Network, 5. 간략한 UDP 서버. 아흠. 아무래도 그냥 데스크탑 한대 뽑아야 할까 봅니다. -_-;; ------------------------------------------------------------------------------------------- 간만에 돌아왔습니다. 이번에는 UDP 서버의 간략한 소스를 보지요. #include #include #include int main(int argc, char *argv[]) { WSADATA wsa; int retval, addrlen; char buf[513]; SOCKET sock = socket(AF_INET, SOCK_DGRAM, 0); SOCKADDR_IN serveraddr, clientaddr; WSAStartup(MAKEWORD(2, 2), &wsa); Zer.. 더보기
스택과 큐 스택.jpg 큐.jpg 더보기
희귀템 걸렸어요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 이건 뭔가요 -_-; 내가 뭘 했다고 시스템에러래 ㄱ- 더보기
PKU 2840. Big Clock. AC #include int main() { int t, i, h, m; scanf("%d", &t); for(i=0; i 더보기
PKU 2656. Unhappy Jinjin. AC #include int main() { int n, i, a, b, max, day; scanf("%d", &n); while(n) { max=day=0; for(i=0; i max) { max=a+b; day=i; } } printf((max 더보기
PKU 2656. Unhappy Jinjin. [판정:AC] 오늘 병원가서 풀어볼 생각으로 문제를 읽었는데 적어가기도 민망할 만큼 쉬운놈이었네요 -_-;; #include int dscanf( int *pnum ) { scanf("%d", pnum); return *pnum; } void main() { int n, i; int hour, sum; int diff, trial; while( dscanf(&n) != 0 ) { diff = 0; trial = 0; for( i = 1; i 8 && (sum-8) > diff ) { diff = sum - 8; trial = i; } } printf("%d\n", trial); } } 더보기
PKU 2243. Knight Moves. [판정:AC] The Triangle을 풀기 이전에 손코딩으로 풀었던 문제입니다 -_-; 처음에는 시작점에서 n번만에 갈 수 있는 모든 위치를 표시하고 각 거리마다 어떤 규칙이 있는지 파악하려고 했었습니다만, ( 여기에서 거리란, 시작점에서 가로나 세로로만 움직여서 도착점까지 갈 때 필요한 움직임의 수를 의미합니다 ) ( 즉 a1에서 c2까지의 거리는 3이고, b4에서 h7까지의 거리는 9라고 간주합니다 ) 일정 거리까지만 규칙이 보이고 그 이후에는 규칙이 잘 보이지 않았습니다 그래서 벡터를 사용하여 문제를 풀기로 했습니다 ( 자료구조적 벡터 말고 수학적 벡터 -_-; ) 가만 보면, 시작점으로부터 거리가 짝수인 위치로는 짝수번만에 이동이 가능하고 시작점으로부터 거리가 홀수인 위치로는 홀수번반에 이동이 가능했습니다 (.. 더보기
PKU 1163. The Triangle. [판정:AC] 이건 뭐 제가 번역해놓고서 당시엔 풀이법을 모르겠어서 한쪽으로 밀어두었던 문제입니다 -_-;; 그러는 중에 들보군과 환타님의 솔루션이 올라와서 살짝 훑어보았습니다 소스는 읽다보면 풀이를 그대로 따라가게 될 것 같아서 거들떠보지도 않고 나머지 부분만 보았는데요 들보군의 것은 "AC Get"을 한글로 쳐놓은 "ㅁㅊ ㅎㄷㅅ"를 스파킹군이 이해하지 못해서 시작된 댓글놀이가 주가 되었고 -_-ㅋ 환타님의 것은 마지막에 시크하게 "그냥 큰 것만 골라서 더하면 되네요"라고 써놓은게 제 머리에 남아서 힌트가 되었습니다 -_-b 요새 계속 병원에 있어야 하는지라 "그냥 큰 것만 골라서 더하면 되네요"만 가지고 손코딩을 했습니다 크하하핰 왜 전 항상 다른 팀원들에 비해 압도적인 양의 코딩을 해야 문제가 풀리는걸까요 ㅠㅠ .. 더보기