[PS] 2012 Daejeon 6113 Dot Number

본 문제는 입력이 값 2개가 들어온다. 다음 그림을 먼저 보자 예를들어 1 5 와 같이 입력이 들어왔으면 1과 5가 좌표 몇 몇에 있는지 알아낸다. 1은 (1, »

[PS] 2013 Daejeon 6508 Permutation Graphs

Permutation Graphs 란 구글에 치면 본 문제와 같은 그림이 많이 나온다. 원소의 개수와 원소의 내용이 같은데, 순서만 다른 두 배열을 주고 같은 원소끼리 선을 긋고 겹치는 »

[PS] 2013 Daejeon 6506 Padovan Sequence

본 문제는 달팽이 마냥 삼각형이 만들어져있는데, 변의 크기를 출력하는 문제이다 점화식은 A[i]= A[i-1] + A[i-5] 이고 런타임에 계산하면 느리므로 입출력만 런타임에 하도록한다. int 로는 »

[PS] 2012 Daejeon 6121 Square Annulus

TL이 10초짜리라 그런지, 설명이 좀 길다. 잘 보면된다. 문제를 간단히 요약하면, 모든점을 포함하는 정사각형을 그린후 내부점을 외곽으로 삼는 작은 정사각형을 그린다. 그런데 작은 정사각형은 큰 정사각형 »

[PS] 2011 Daejeon 5850 Turtle

이 문제는 문자값에 따라 거북이가 이동한 좌표의 사각 넓이를 구하는 문제이다. L,R은 방향만 트는 것이고 F와 B가 앞으로 또는 뒤로 이동한 거리이다. F와 B를 할때 »

[PS] 2013 Daejeon 6511 Term Project

본 문제는 간단하게 왕따를 찾는문제이다. 먼저 자신을 선택한 사람이 없으면 왕따이다. 이를 그래프로 표시해보면 위와 같이 2와 5는 선택받지 못했으므로 왕따이다. 이에 따라, 왕따가 선택한놈도 왕따일 »

[PS] 2013 Daejeon 6500 Boxes

문제는 너무 쉽다. 박스를 테트리스마냥 밑으로 내리는데, 몇번을 옮겨야 하느냐? 하는 문제이다. 가장 멍청한 솔루션은 직접 박스를 움직이는것이다. 이것을 간단한 동적계획법으로 풀수 있는데, 위에서 아래로 순회하면서, »

[PS] 2014 Daejeon 6897 Exploration

본 문제는, 솔루션보다 문제의 뜻을 이해하기가 더 어렵다. 그래프의 정점이 사람이고 간선이 관계를 뜻한다. 간선의 수가 친구의 수라고 볼 수 있는데, 이 친구의 수가 K개 이상인 »

[PS] 2014 Daejeon 6896 Eureka Theorem

본문제는 부가적으로 설명할 것이없다. 어떠한 수가 3개의 삼각수들로 이루어지면 그것이 유레카 숫자이다. 3중반복으로 풀어야징 ㅋ 하는 사람은 없길 바라며... 기본적으로 이중반복을 돌고 나머지는, 이진탐색으로 해가 있는지 »

[PS] 2014 Daejeon 6902 Three Squares

본 문제는 여러개의 점들을 정사각형 3개로 모두 감싸는데 가장 작은 정사각형의 변의 길이를 출력하는 문제이다. 3개를 구하는것이라 어려울 수 있는데. 2개라고 생각하면 매우 간단하다. 먼저 위 »

[PS] 2014 Daejeon 6895 Deduction

Deduction 의 뜻은 추론 이라는 뜻이다. 초반 설명이 이해하기 어렵지만 간략하게 요약하면 다음과 같다. TYPE1 은 무조건 참이다. TYPE2 는 [a,b,c...] -> false , 즉 »

[PS] 2014 Daejeon 6901 String Transformation

이 문제는 기존문자열을 목적문자열로 변환시키는데 몇번의 swap이 필요한지 묻는 문제이다. swap은 인접한 문자끼리만 가능하다. 예를들어 aaaabbbb 가 목적문자열이고 aabbabab 가 기존 문자열일경우 aababbab 로 1번 바꾼후 »

[Algorithm] [Sort] Merge sort

Merge sort 병합정렬 합병정렬 병합정렬은 존 폰 노이만이 1945년에 고안한 정렬방법론이다. 분할정복 알고리즘을 기반으로 하는 정렬방법이다. 병합정렬은 안전한 정렬(stable sort)이다. 여기서 안전하다는 뜻은 같은 »

[Algorithm] [Sort] Bubble, Selection

버블 정렬은 정렬을 하는 모습이 수면위의 물방울이 튀는것과 비슷해 버블 정렬이라고 한다. 버블 정렬의 원리는 가장 큰 값을 맨 뒤로 보내는 작업을 n-1번 반복한다. n-1번을 반복하는 »

[Algorithm] [Sort] Heap sort

힙 정렬의 "힙" 은 두가지 용어로 사용된다. 첫번째는 자료구조 힙이고, 두번째는 메모리공간 힙이다. 여기서는 자료구조 힙에 대해 논의한다. 힙이란 간단하게 두가지 힙이 존재한다. 최대힙과 최소힙이다. (피보나치힙은 »

[Algorithm] [Sort] Insertion Sort

삽입 정렬이란 데이터가 들어가야할 위치를 찾아 그곳에 삽입하여 정렬을 한다. 이 글은 기본적으로 삽입정렬이 뭔지 아는 사람들을 위해 작성되었다. 삽입정렬이 정렬이 되는 원리를 말해보자면 데이터가 N개 »

[PS] [SC]두 숫자 더하기

main(n) { gets(&n); putchar(n % 85 + 5); } 위는 일의자리 두 숫자를 더하는 소스이다. 원리는 아래와 같다. 만일 0 0을 입력하면 0이 나오고 4 4를 »

[PS] 2013 Daejeon 6510 Stickers

본 문제는 스티커의 합이 최대가 되도록 뽑아야하는데, 인접한 스티커 두개는 뽑을 수 없다. 위와 같이 스티커가 있을떄, 맨 왼쪽 줄에 50을 골랐으면 밑에 30과 오른쪽의 10은 »

[PS] [DP] knapsack

배낭문제라 불리는 knapsack 문제이다. 가방에 담을수 있는 무게가 정해져 있고, 가방에 물건들을 담을때 , 가치가 최대가 되는 방법을 고르는 문제이다. dynamic programming에서 optimal solution은 항상 문제를 소분화에서 »

[PS] [DP] weighted interval scheduling

WIS 라 불리는 가중치를 가진 구간 문제이다. n개의 구간이 있고 각 구간마다 가중치(weight)를 갖는다. 겹치지 않게 구간을 선택하는데 , 가중치의 합이 가장큰 구간들을 고르는 문제이다. »

[JQuery] HTML 파일 업로드

HTML로 파일을 업로드 할려면 input 태그의 type이 file 이여야 한다. 하지만 이렇게 쓰면 디자인 커스텀이 쉽지않다. 그래서 이 태그는 display:none으로 처리하고, js나 jquery로 연결하여 처리한다. »

[JQuery] AJAX

JQuery로 AJAX를 하는 방법을 소개한다. 자세한건 구글에 검색해라 ㄱㄱ 우선 AJAX통신을 위한 페이지가 하나 필요하다. #!/usr/bin/perl use strict; use warnings; use CGI; use DBI; »

[bootstrap] bs-switch 다루기

<input id="autologin" type="checkbox" checked="checked" data-size="micro" data-on-color="success" data-off-color="danger" class="bs-switch"> 위와 같은 BootStrap 컨트롤이 있다. 이는 토글 스위치로 아이폰의 »

[Visual C++] Clipboard 관리

void CMyListView::OnEditCopy() { if ( !OpenClipboard() ) { AfxMessageBox( _T("Cannot open the Clipboard") ); return; } // Remove the current Clipboard contents if( !EmptyClipboard() ) { AfxMessageBox( _T("Cannot empty the Clipboard") ); return; »

[Visual C++] MFC GetKeyState 함수

현재 키는 nChar 에 들어온다. 다중키는 ::GetKetState로 확인할 수 있다. if ((::GetKeyState(VK_SHIFT) & 0x8000) == 0x8000){ } 는 현재 시프트가 눌러져있는지 검사한다. CapsLock 키는 위와같이 검사하지 »

[PHP] cli 스크립터 설치

1. Linux 에서 sudo apt-get install php5-cli <?php echo "Hello, PHP\n"; echo "Date : " . date("Y년m월d일 h시i분s초")."\n"; ?> Bye. $ php main.php Hello, PHP »

[perl] regex VS split

perl에서도 속도를 고려할 때가 있다. 정규표현식과 split…. use Time::HiRes qw/gettimeofday tv_interval/; my $start = [gettimeofday]; @a=<>=~/(\d+)/g; my $end = [gettimeofday]; print »

[perl] 참조변수

perl 에는 참조가 존재한다. 참조를 사용하는 이유는 여러가지가 있다. 1.call by reference를 사용하기 위해서, 2.함수의 반환이나 인자 전달에 의한 복사를 방지 하기위해, 3.변수가 »

[perl] MIME::Lite 이메일 보내기

아래의 명령으로 설치한다. sudo apt-get install ssmtp sudo gedit /etc/ssmtp/ssmtp.conf 여기서 기존의 옵션은 제거하고 아래의 옵션을 추가. ssmtp는 자신의 이메일을 통해서 이메일을 전송하므로, »

[perl] AES 사용하기

Aes.pl 다운로드 이 펄 라이브러리를 사용하기 위해서는 많은 모듈이 필요하다. cpan에서 설치한다면 자동으로 의존성 모듈을 설치해 주겠지만 cpan에서 ubuntu15.10 기준 설치가 안된다 ㅡㅡ 그래서 »

[perl] Time::Stamp

Time::Stamp 모듈은 암호화할때 사용될수 있다. 사실 localtime 이란 함수가있어 현재시각 알아올때는 굳이 필요가 없다. 현재 시간 알아오는 코드는 아래와 같다. #!/usr/bin/perl use strict; »

[perl] [linux] Postgresql DBI 설치

하...리눅스 뭐 우분투 계열.. 일단 postgresql 을 설치하자. sudo apt-get install postgresql -y 그후 DB의 비밀번호를 변경하자. sudo -u postgres psql # ALTER USER postgres WITH »

[perl] File::Copy 파일 복사

펄에서의 파일복사 일반적인 텍스트 파일이라면 여러가지 방법이있다. my $src="src.txt"; my $dest="dest.txt"; open(DEST,">$dest") or die $!; open(SRC,"<$src") or »

[perl] [windows] DBD::Pg , PostGreSQL 설치

여러가지 데이터베이스가 있지만, Oracle Maria 등등... Oracle은 너무 무겁고.... 일단 Perl로 CGI 할려고 받는거니 Perl의 DBI가 해당 데이터베이스를 지원해야한다. 그래서!!! PostGreSQL로 선택을 하였고 ㅎㅎ http://www. »

[perl] Plack 서버

이제 Perl 로 CGI 프로그래밍을 하기 위한 준비를 해보자. 우선 Perl 로 웹프로그래밍을 하게 해주는 모듈이 필요하다. 사실 Perl 로 CGI 모듈을 사용하지 않아도 CGI 프로그래밍은 »

[perl]수행시간 측정

수행시간 측정에는 두가지 방법이있다( 내가아는것만) 첫번째는 Benchmark 모듈을 이용하는 법이다. sudo cpan install Benchmark 로 설치하면된다. 설명은 cpan 에서 찾아보길 바란다. Benchmark 모듈은 결과가 정수로 나오는데 »

[perl] eclipse EPIC perl IDE 설치

http://www.epic-ide.org/ 에서 EPIC 에 관한 글들을 볼 수있다. 설치는 eclipse 자체에서 한다. eclipse 를 켜고 Help -> Install new software 에 들어간다. Add »

[perl] WxPerl 프로그래밍

WxPerl은 OOP 이며 MFC와 비슷한 방식으로 동작한다. Perl 에서의 class 는 package 로 구분하며 main package를 먼저 선언해준다. package main; #메인클래스 선언 my $app = Wx::SimpleApp-& »

[perl] 크로스 플랫폼 GUI

Perl의 GUI 모듈에 대해 설명한 글이 있다. Win32::GUI - Windows에서만 되므로 제외 Tk - Tk 8.4의 바인딩으로 최신 Tk버젼 8.5를 못따라가고 있으며 원 »

[perl] 10진수 -> 2진수 변환 , 함수 배열 인자

$binary = sprintf( "%08b" , 15); 15를 8자리 2진수로 변환한다는 뜻임. 배열인자를 넘기기 위해서 레퍼런스를 사용한다. 함수를 인자로 넘겨줄시 \(backslash) 를 앞에 붙이면된다. 매개변수를 받을때는 $a = $_[0]; @$a »

[perl] 정규표현식 EAA..EZZ 범용레지스터 매칭

정규표현식에서의 매칭결과를 배열에다 추출한다. 괄호로 감싸면 그룹이 되며, 캡쳐가된다. 캡쳐를 원하지 않으면 (?: )를 사용한다. 캡쳐를 하지 않으므로 처리속도도 증가된다. #!/usr/bin/perl use strict; use warnings; »

[perl] windows에서 WxPerl, PAR 컴파일

1. Wx설치 Windows10 에서는 설치가 안된다.(짜증난다 진짜) Windows7 sp1 x64에서는 설치가 되던데, 여기서 설치를 하고 C:Strawberry 폴더를 통채로 복사하는 방법을 사용해 설치 하였다. windows7 »

[perl] liunx에서 WxPerl, pp 컴파일

리눅스민트 17버전 이나 거의 모든 리눅스 버전에는 Perl 이 기본적으로 설치되어있다. 맨 처음 #!/usr/bin/perl 을 써주고 펄 스크립트를 작성한다. 스크립트를 작성한 후에는 실행권한을 준다. »

[pascal] EOF 입력

C언어에서는 getchar() ,scanf() 등은 EOF 를 만나면 EOF 즉 -1 을 반환하고 gets() 등은 NULL을 반환한다. Pascal 또한 EOF 까지 입력을 받을수 있는데, C에서는 표준입력이 stdin »

[java] 스트링 분할 StringTokenizer

자바에서역시 스트링 토큰을 지원한다. 바로 StringTokenizer 이다!!!!!!!!!!! 이놈은 뭐 죄다 클래스로 있다. C++ 과 JAVA 의 차이를 보면, JAVA 는 정말 더럽게 많이 클래스를 쪼개 놓았다. »

[C++] 시간측정 라이브러리 chrono

double start=clock(); double end=clock(); end-start; 위는 C에서의 고전적인 시간측정 방법이다. 하지만 C++ 에서는 시간측정에 대한 좀더 정확하고 멋있는 라이브러리를 제공한다. #include<chrono> »

[C++] 함수 객체

C++은 C 의 95%를 포함하고있다. 그러나 그 대체본이 거의다 존재한다. C++ 을 사용한다면 성능 문제를 제외하고, C++을 사용하는게 맞다. C에서의 시간측정은 time.h »

[C++] 메소드 const 위치에 따른 의미

const type class::foo(const type name) const; 왼쪽 부터 첫번째 const는 리턴타입을 상수화 하겠다는 뜻이다. 두번쩨 const는 파라매터를 상수화 하겠다는 뜻이다. 마지막 const는 멤버변수들을 건드리지 »

[C] 에라스토테네스의 체

기존의 에라스토테네스의 체는 배열이 필요하였다. 하지만, 특정 N에 대한 소수 판별을 할때 배열을 두고 할수는 없으니, 간단하게 쓸수있는 소수 판별을 올려놓는다. #include<stdio.h> »

[C] 1비트수 세기

첫 번째 방법은 2로 나누어 가면서 나머지가 1인것의 개수를 세는 방법이다. 가장 단순한 방법이다. int BitCnt1(int v){ int cnt = 0; while (v){ cnt += v % 2; »

[C] realloc 함수

realloc 함수는 malloc 이나 calloc 으로 생성한 메모리블럭의 크기를 늘려주는 함수이다. C의 엄청난 장점 중에 하나다. 예를들어 vector 를 구현할때 realloc 을 사용하면 새로 할당한 배열에 »

[C] 하드웨어를 이용한 최적화 기법

C를 좀더 빠르게 짜기위한 기법이다. 주로 사용할일은 없지만, 알고리즘풀이 사이트에서 극한의 속도를 내기위한 기법들을 소개한다. 1.cache 적중률을 극대화 하라. cache 메모리는 CPU가 주메모리와의 속도차이에 의한 »

[linix] 메모리 누수 확인툴 Valgrind

http://valgrind.org 위는 공식 사이트이다. 2015/1/31 기준으로 받을때의 버전은 3.11 버전이다. 새 버전이 있으면 새 버전으로 받으면 된다. 아래의 명령어로 설치한다. sudo »

[C] 반디집 자동설치 프로그램

Windows에서의 wget , 다른 프로세스 제어 나는 운영체제를 자주 설치하는 편이다. 뭐 이런저런 이유가 있지만 하드카피기기가 없는것이 가장 큰 이유이다. Linux야 bash나 perl로 설치 명령어만 써주면 자동으로 »

[C] 2진수, 8진수, 16진수,N진수

가장 처음 배우는것이 2진수 변환이다. 정수 n을 2로 나눠가면서 0이될때까지의 정보를 저장 & 역수능로 출력하는것이라고 배웠다. 비트연산을 조금만 사용하면 추가저장공간이 필요없는 2진수를 출력할 수 있다. n은 »

[C] gcc usage

gcc는 리처드 스톨만이 개발한 C언어 컴파일러이다. Windows에서 설치법 https://sourceforge.net/projects/mingw/files/ 위 사이트에서 mingw-get-setup.exe를 받아서 실행하면 된다. 실행후 아래 4개의 옵션에 체크한후 »

[C] C99

1.가변 길이 배열(VLA : variable-length array) c90 에서만 해도 배열의 선언시 크기는 반드시 상수여야 했다. 그러나 c99 에서 부터는 배열의 크기를 변수로 지정할 수 있게 »

Test

테스트용 글 입니다. this is simple code round. #include<iostream> using namespace std; int main(){ return 0; } »