알고리즘 특집 1부 – 알고리즘 문제 해결 전략의 구종만님과 함께
해당 포스팅 관련 링크 : https://iamprogrammer.io/post/6691 프로그래밍은 문제 해결이다! 코딩 인터뷰가 보편화 됨에 따라 부쩍 재 조명을 받고 있는 알고리즘에 대해 ‘프로그래밍 대회에서 배우는 알고리즘 문제 해결전략’의 저자 구종만님, 그리고 알고리즘 공부모임인 손코딩 뇌컴파일 눈디버깅의 하광성님과 함께 이야기를 나눠보았습니다. 알고리즘을 왜 공부해야 하는가? 국내 최대의 알고리즘 전문 사이트 – 알고스팟 손코딩 뇌컴파일 눈디버깅 – Slideshare ACM-ICPC – ACM대학생 프로그래밍 경시대회 한국정보 올림피아드 topcoder.com 구글 코드 잼 코드포스 바야돌리드 프로젝트 오일러
What is 'pwn'?
WeChall 신규 사이트에 pwnable 관련해서 올라왔네요. 아래는 짧막한 설명입니다. ‘pwnable.kr’ is a non-commercial wargame site which provides various pwn challenges regarding system exploitation. The main purpose of pwnable.kr is ‘fun’. Please consider each of the challenges as a game. While playing pwnable.kr, you could learn/improve system hacking skills but that shouldn’t be your main purpose. pwnable.kr => http://pwnable.kr/
은하수벅스 대학생 프로그래밍 경시대회 본선문제 및 풀이
Description 은하수벅스는 이번 여름에 고객들을 대상으로 사은품 프로모션을 진행하고 있습니다. 프로모션은 음료를 구매할 때마다 고객에게 스티커를 적립해줍니다. 스티커는 음료의 종류에 따라 여름 음료 스티커와 일반 음료 스티커로 나뉘며, 5개 이상의 여름 음료 스티커를 포함한, 총 12개의 스티커를 모으면 이를 하나의 텀블러로 교환할 수 있습니다. 연재는 현재 S 개의 여름 음료 스티커와 N 개의 일반음료 스티커를 가지고있는데, 이를 통해 받을 수 있는 최대 텀블러의 수를 알고 싶어 합니다. 워낙 많은 스티커를 가지고 있으므로, 계산이 어렵다고 느낀 연재는 당신에게 이를 계산하는 프로그램을 작성해달라는 요청을 받았습니다. 스티커의 개수가 주어졌을 때 이를 통해 얻을 수 있는 최대 텀블러의 수를 출력하는 프로그램을 작성하세요 Input 입력은 여러 개의 테스트 케이스로 주어지며, 첫 줄에 테스트 케이스의 개수 T (1 ≤ T ≤ 10,000)가 입력됩니다. 하나의 테스트 케이스는 0이상 260 − 1이하의 정수 S 와 N 이 입력되며, 두 숫자 사이에는 공백이 주어집니다. Output 각 테스트 케이스의 순서대로 한 줄에 최대 얻을 수 있는 텀블러의 숫자를 출력하세요. Sample...
IT 트렌드 '빅데이터'에서 '인공지능'으로 세대교체
IT 트렌드 ‘빅데이터’에서 ‘인공지능’으로 세대교체 빅데이터가 진다는 표현은 조금 애매하지만; 기사 출처 http://media.daum.net/digital/others/newsview?newsid=20151105134317802 인공지능(Artificial Intelligence) 2. 실시간 데이터(Real-time data) 3. 고가용성 솔루션(High availability) “IT업계에서 바라는 인재상이 특정 기술에 전문성을 갖되 다양한 기술에 대한 이해도를 겸비한 풀 스택 개발자(Full-stack engineer)로 변화하고 있음을 보여준다.”
일주일동안 톰캣 모듈짯다.
JSP기반으로 프로젝트하나만들고있는데, 작업사항 필요에따라서 별도의 모듈이 필요했음. 후 드디어 다 짯네 . . 하루종일 이 모듈만 생각나서 미치는줄. 벌써 일주일이 지났다니 . . 시간이 너무 빠르다.
코딩 더 매트릭스
http://www.yes24.com/24/goods/17967245 아직 읽어보지 못했다. 이번에 읽는 책들이 마무리되면 다음 달쯤에 읽어볼 수 있지 않을까 싶다. 파이썬을 이용하여 여러 가지 선영 대수의 문제를 푸는 법에 대하여 설명하고 있다. 머신 러닝에 있어서 많은 예제들이 담겨있다.
겨울
날씨가 점점 추워진다. 유난히 추위를 많이 타는 것 같다. 차라리 더운게 난 좋은데 . .
python towers of hanoi__6_6
def hanoi_imp(n, curr, dest, rest): if n == 0: return hanoi_imp(n - 1, curr, rest, dest) print("move %n from %s to %s" % (n, curr, dest)) hanoi_imp(n - 1, rest, dest, curr) return def hanoi_fun(n, curr, dest, rest): return [] if n == 0 else ( hanoi_fun(n - 1, curr, rest, dest) + [(n, curr, dest)] + hanoi_fun(n - 1, rest, dest, curr)) def hanoi_gen(n, curr, dest, rest): if n == 0: return for _ in hanoi_gen(n - 1, curr, rest, dest): yield _ yield (n, curr, dest) for _ in hanoi_gen(n - 1, rest, dest, curr): yield _ return def hanoi_cps(n, curr, dest, rest, acc=[], cont=lambda acc: acc): return cont(acc) if n == 0 else hanoi_cps( n - 1, curr, rest, dest, acc, lambda acc: hanoi_cps( n - 1, rest, dest, curr, acc + [(n, curr, dest)], cont)) if __name__ == "__main__": hanoi_imp(3, "A", "B", "C") print(hanoi_fun(3, "A", "B",...
Memcahed 설치 및 설정
Memcahed는 데이터베이스의 데이터를 메모리 영역에 저장함으로써 응답속도를 빠르게합니다. 아래는 우분투환경에서의 설치법입니다. 참고하세요. https://www.digitalocean.com/community/tutorials/how-to-install-and-use- memcache-on-ubuntu-14-04 해당 패키지에 참고되어있다면 아래 커맨드라인을 참고하세요. apt-get install memcached pecl install memcache
HandheldFriendly 태그
HandheldFriendly 메타태그의 정의를 몰라서 찾아봤는데 스택오버플로우 잘 정리되어 기재있어서 가져왔다. This tag was originally used to identify mobile content in AvantGo browsers, but became a general standard for identifying mobile websites. However, it’s unknown what range of browsers support this meta tag: 출처 : http://stackoverflow.com/questions/1988499/meta-tags-for-mobile-should- they-be-used
AWS EC2 FTP 연결지연
얼만에 서버이전을 했다, 물론 동일한 AWS 인프라다. 그런데 작업을하다보니 AWS 업로드 속도가 극으로 느린것을 발견, 이래저래 찾아보니 이전에 pasv_address 등록한것을 잊어버리고있었다. # This option specifies the location of the RSA key to use for SSL # encrypted connections. rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key pasv_enable=YES pasv_min_port=13000 pasv_max_port=13100 port_enable=YES pasv_address=변경된 인스턴스 pasv_addr_resolve=YES
hack-me.org: WWW Login Test
hack-me.org 에서는 총 7개의 카테고리를 제공하고있다. 아직 올클리어 하지못한곳이 많아서 해보지는 못했는데, 낮은 문제도 풀겸(지금 와우해커 8번 푸는중ㅜㅜ)해서 hack-me.org를 연재하려고한다. 첫 번째 문제는 “WWW Login Test” 이다. 해당 문제에서 제공되는 정보이다. Description : Setup a www server on your computer, make it accessible by the outside, and serve the post request. The content of the file has to be contain : Welcome YOU ARE ID, Thank you, CherishCat for my password : YOU ARE PASSWORD SUBMITTED 위와 같이 문제에서는 나에게 웹서버설치를 요구한다. 아래는 해당 문제에나오는 폼태그이다. post 형식으로 request 한다. 문제풀이 방법은 두개가있을거같다. 웹서버를 설치하는것과 아니면 넷캣을 이용하거나, 난 넷캣을 이용했다. 네캣으로 아이디와 패스워드를 겟겟 Port : Answer :
최빈값 알고리즘
데이터 인덱스 카운트의 채대값 public class Mode{        public static void main(String[] args){               // 1. 입력               int[] data = { 1,3,4,4,1 };               int mode = 0;  // 최빈값               int[] index = new int[data.length]; // data의 인덱스 카운터               int max = Integer.MIN_VALUE; // 최대값을 저장하기위한 변수 : 초기값은 정수형의 최소값 지정               // 2. process               for(int i=0;i<data.length;i++){                       index[data[i]]++; // count               }               for(int i=0;i<index.length;i++){                       if(max<index[i]){                              max = index[i];                              mode = i;                       }               }               System.out.println("최빈값 : " + mode + " , " + max + "번");        } }
수포자를 위한 게임 수학 (Math for games) #01 - OT & What is Programming ?
이전에 포포님 동영상(‘프로그래머가 수학을 못하면’) 이라는 주제로 포스팅한적있다. 모든 프로그래머가 수학을 다 잘하지않는다. 나도 프로그래밍 하면서 느끼는 거지만 수학의 요소가 많이 들어갈 때도 있지만 대부분 경우의 수다. 초등학생 때 배운? 그냥 논리회로 공부법에 익숙해져도 좋을듯하다. 그런데 확실히 프로그래밍에는 수학이 중요하다. 2018년부터 소프트웨어 고육이 의무화가 된다. 아마도 앞으로 많은 학생들이 프로그래밍을 알게 되고 그만큼 프로그래머 수도 급증할 것 같다. 프로그래밍은 유치원생부터 노인분들까지 누구나 할 수 있다. 하지만 그 깊이에 따라서 만들 수 있는 결과물은 확실히 차이가 있다. 좋은 프로그래머로 성장하기위해서 더 좋은 알고리즘을 구현해야한다. 알고리즘에따라서 서버의 자원을 소비하는 양도 대폭감소되기도하고 증가하기도한다. 하지만 하나의 사업체에서 프로그래머로 근무하고있다면 잘못된 알고리즘은 상당한 자원을 낭비한다. 자원은 곧 돈과도 연결되어있다. 또한 좋은 로직은 유지보수를 수월히하고 확장성과 이식성이 매우 좋다(갓구글). 그리고 내가 가장좋아하는 성능에도 아주 큰 영향을 미친다. 하지만 대부분의 프로그래머가 수학을 잘하는것은 아니다. 그래도 중간이상은 가기위해 공부를하고있다. 가끔 유튜브에서 해외 프로그래머들이 면접볼때 손코딩하는거보면 흠칫흠칫 놀란다. 내가 왜 프로그래머가 되야하지 라는 회의감도 느낀다. 경지를 보니 겸손해진다.
algorithm used by Google Search by Image?
팀에서 검색엔진때문에 자료를 찾고있다가 구글 이미지 검색엔진이 궁금해서 자료를 찾아봤다. My guess is that Google probably uses some combination of the following techniques and ranks the results using a proprietary algorithm. Feature Detection (Image fingerprinting to look for exact match) & Search by Color & Visual Similarity Search There are three commonly used feature detection algorithms for matching image deformation such as blur, rotation, scale, and illumination change. They are SIFT, PCA-SIFT and SURF SIFT is slow and not good at illumination changes, while it is invariant to rotation, scale changes and affine transformations. SURF is fast and has good performance as the same as SIFT, but it is not stable to rotation and illumination changes. PCA-SIFT is the best but it has problems with image blur. There is no perfect algorithm, so the choice depends mainly on the application, and what kind of trade-offs the application can tolerate. Example:...