본문 바로가기

Code

코딩 인터뷰 완전 분석 210쪽 17.3 변형 문제 풀이 간만에 포스팅인데, 인사이트에서 문제 풀기 이벤트 중이어서 참가해본다.알고리즘 과목 하나 제대로 수강하지 않은 비전공자인 터라 얼마나 엉성하게 보일지는 모르겠지만, 답안이 포스팅인 안되고 있는 관계로 나도 한번 정리해 볼까 하고 몇자 남겨본다.우선 문제는 다음과 같다.자연수 n을 입력받고, n!의 계산 결과 중 마지막에 붙은 연속된 0의 개수와 연속된 0 바로 앞에 나오는 숫자를 구하라.[실행 예]input n: 15 output: 3 8[설명]15!은 1307674368000이므로, 마지막에 연속된 0은 3개이고, 바로 앞의 숫자는 8이다.* 조건 *n의 범위는 1 이상, 10000 이하입니다.테스트 입력은 다음과 같습니다. 20! = 2432902008176640000 30! = 26525285981.. 더보기
블로그에 소스 코드 이쁘게 보이기 블로그를 돌아다니다 보면, 소스코드가 이쁘게 나오는 경우를 종종 볼 수 있다. 본인은 코드 예제를 쓸 때 글상자를 이용해서 정리하고 했는데, 생각난 김에 스타일을 적용해 보았다. 소스코드를 이쁘게 보이기 위해서는, 1. SyntaxHighlighter 라는 라이브러리를 받는다. (자바스크립트와 css로 구성되어 있다.) 2. 압축을 풀고, sciprts와 styles 폴더 안에 있는 css 파일과 js파일을 서버에 올린다. (티스토리의 경우, 스킨 메뉴에서 파일을 올릴 수 있다.) 3. 스킨 편집을 통해 헤더 부분에서 사용할 자바스크립트를 추가한다. 4. 블로그 글 중간에 pre 태그를 이용하여 코드를 감싼다. 자세한 내용은 다음 링크를 참조한다. * 춢처 - http://knightbw.tistory... 더보기
자바를 이용한 DB 프로그래밍 기초 - mysql 자바에서 DB를 이용한 프로그래밍은 JDBC라는 표준 인터페이스 덕분에, 벤더에 (거의) 상관없이 동일한 형태로 구현할 수 있다. 따라서 자바를 이용한 DB 프로그래밍은 JDBC를 어떻게 이용하느냐의 문제라고 할 수 있다. JDBC를 이용한 프로그래밍은, 아래와 같은 순서로 작성된다. 1. 벤더(mysql, PostgreSQL, ms-sql, oracle 등) 사이트에서 제공하는 JDBC 드라이버를 먼저 구해야 한다. mysql 같은 경우에는, 아래 링크와 같다. http://www.mysql.com/downloads/connector/j/ 2. 이클립스에서 해당 라이브러리를 빌드패스에 추가한다. 3. 여기서 프로그램을 작성하는데, 3-1. 드라이버를 로드한다. (mysql의 경우) Class.forNa.. 더보기
subclipse on OSX eclipse에서 subversion을 사용하기 위한 유용한 플러그인 subclipse. 맥으로 스위칭 하고 난 이후, subclipse를 설치하고 났더니, 이게 왠 걸 실행이 되지를 않는다. 이유는 javahl 이라고 java와 subversion를 이어주는 라이브러리가 있는데, 이게 맥에 설치가 안 되어있기 때문이란다. 좀 더 자세히 이야기하자면, 기본 설치된 버젼은 javahl 이 32비트용만 깔려있는데, 맥에서 보통 이클립스를 64비트용으로 돌린다는 것이다. 그래서 해결책은 아래 링크와 같이 MacPorts를 이용해서 subversion-javahlbindings 패키지를 설치하면 해결된다. 구글링하다보면, (이클립스 상에서 오류가 나서 연결된 페이지를 보면) http://www.open.coll.. 더보기
[이클립스] 라이브러리 이용하기 자바를 이용하여 프로그램을 개발하는 경우, 라이브러리 (다른 사람이 작성한 유용한 프로그램 모음)를 활용하는 경우가 많다. 자바 IDE인 이클립스에서는 손쉽게 라이브러리를 적용할 수 있는데, 그 방법을 살펴보면 다음과 같다. (예시의 편의성을 위해서 엑셀 파일을 컨트롤 할 수 있는 jxl 라이브러리를 설정하는 과정을 서술하였다. 일반적인 방법이므로 다른 라이브러리를 사용할 때도 같은 방식으로 이용하면 된다.) 1. 라이브러리를 찾는다. - 구글에서 검색하는 것이 좋다. - “java library excel”과 같이 검색하면 된다. - http://jexcelapi.sourceforge.net/ - http://www.andykhan.com/jexcelapi/ - http://sourceforge.net.. 더보기
JDBC ResultSet 데이터 없을 경우 체크하기 JDBC를 이용한 DB 이용 프로그램을 작성하다보면, 쿼리문에 따라서 결과가 나오지 않는 경우가 있다. (ResultSet에는 hasNext()같은 메소드가 없다.) 예전에는 SQL의 count 함수를 이용하여, 갯수를 먼저 센 후, 0일때와 아닐때로 구분하여 작성했던 기억이 있기도 하다. 하지만, 워낙 번거롭기도하고, 뭔가 다른 방법이 있을 것 같아서 찾아보니 아래와 같은 방법으로 하면 손쉽게 해결할 수 있었다. ResultSet에서는 next()함수를 while의 조건문 안에 두어, 반복을 수행하는 데, while 문 대신 if문으로 먼저 검사한 후, 그 다음부터 while문을 이용하면 된다. 즉, while문을 if + do-while로 대치하게 된다. 실제적인 예는 아래 출처에서 살펴보도록 하자... 더보기
우분투에서 자바 설정 (OpenJDK 대신 Sun JDK 쓰기) 우분투에서는 기본적으로 GNU의 자바를 쓰고 있다. 일부에서는 퍼포먼스에 문제가 있다고 하고, 혹자는 이클립스 플러그인 설치 때 문제가 생기는 등 안정성에 문제가 있다고 한다. 보통 sun에서 받아서 사용하는(이제는 oracle이지만) 자바를 사용하기 위한 셋팅 방법에 대해 메모하고자 한다. 크게 2단계로 설명할 수 있다. 1. JDK 설치 2. Open JDK 대신 Sun JDK를 default로 설정 먼저, JDK 설치는 우분투답게 아주 쉽다. '우분투 소프트웨어 센터'에서 'sun java'로 검색하여 'sun-java6-jdk'을 설치하도록 하자. 다음으로, 시스템 기본으로 sun 자바를 이용하도록 'sudo update-java-alternatives -s java-6-sun'라고 설정한다. 그.. 더보기
우분투에서 이클립스 셋팅 (한글) 1. 한글 깨짐 - Window > Preference > General > Content type - 인코딩을 "euc-kr"로 설정하자. (또는 "KSC5601", "UTF-8") - 이클립스를 다시 띄우자. - 첫번째 링크 참고 2. JDK 설정은 open jdk가 아닌 sun 버전으로 - eclipse.ini 파일을 고치자. - "-vm /usr/lib/jvm/java-6-sun/bin/java" - 두번째 참고링크를 참고 - 빠르게 따라하기!! 3. content assist가 다르게 맵핑되어 있다고 한다. - Preferences -> General -> Editors -> Keys 에서 키 셋팅을 새로 하자. - 세번째 참고링크 참고 4. 이클립스 플러그인 - 역시 세번째 링크 참고 - 내가.. 더보기
ubuntu를 이용한 CCTV 만들기 ubuntu를 쓰면서 오픈소스 프로그램을 손쉽게 쓸 수 있다는 데 감명을 받곤 하는데, CCTV를 설치하면서 또 한번 감탄할 수 밖에 없었다. usb를 연결하면 별 설정없이 카메라를 인식한다(chesse 라는 프로그램으로 확인해보면 된다. 보통 /dev/video0 로 잡힌단다). 그리고 CCTV를 만드려고 하면, 화면 상에 동작을 인식한 후, 동작이 발생한 시점부터 촬영을 하고 기록을 해야하는데, (윈도우에는 몇몇 CCTV 프로그램이 있지만 유료화되었다.) motion이라는 훌륭한 오픈 소스가 있다. 기본적인 작업 순서는 아래 링크에 잘 설명되어 있다. (요약하면, sudo apt-get install motion 만 치면 끝이다.) - http://blog.daum.net/ozrictentacles/.. 더보기
우분투에 air video 설치하기 아래 링크를 따라서, 1. 각종 library를 apt-get를 이용하여 설치하고, 2. ffmpeg는 airvideo 홈페이지에서 받아서 설치한다. (압축풀고 컴파일해야한다. configure 옵션 따라하면 아래 링크 따라하면 된다) 3. airvideo 서버 파일 (.jar)를 적절한 위치에 저장해 둔다. 4. 에어비디오 데몬을 돌린다. 여기까지는 링크보면서 따라하면 되는 것이고, 몇 가지 막혔던 부분에 대해서 정리해 보자. 1. properties 파일에서 ffmpeg 파일은 위에서 컴파일한 경로로 지정해주어야 한다. 내 경우에는 /usr/bin/ffmpeg 가 옛날 버젼이었다. 2. 한글 자막은 properties에서 잡아주는데, 2.1. subtitles.encoding = euc-kr 로 적어.. 더보기