본문 바로가기

java

(8)
[JAVA CV] JavaCV를 활용해 웹캠 제어하기 JavaCV는 java로 OpenCv의 기능을 직접 활용할 수 있는 라이브러리라고 소개되고 있다. 어찌되었건 javaCV로 웹캡을 제어하는 예제들이 상당했기 때문에 써보기로 했다. OpenCV 라이브러리 세팅을 이클립스에 마치고, javaCV의 라이브러리도 build path에 추가해주어야만 해당 코드들이 활용 가능하다. 여러 페이지를 참조해가며 JavaCV를 적용하다보니 한 페이지의 인스트럭션을 온전히 따르지 않은 감도 있는데, 내가 수행한 순서들만 나열하면 (선행조건 : OpenCV 라이브러리 추가를 마친 이클립스에서 아래 과정을 진행한다) 1. VisualC++ redistributable package 설치 For 32 bit: http://www.microsoft.com/download/en/d..
[JAVA] split과 regex를 활용해 문자열 뽀개기 어떤 사정으로 인해 String을 문자와 숫자로 나눠보려는 마음에 여러 시도를 해보았으나 잘 되지않아 구글신님의 도움을 빌렸다. 그분께 신탁을 맡겨본 결과 split과 regex(정규표현식)을 통해 손쉽게 문자열을 뽀갤 수 있다는 사실을 알았다. 우선 String input에 입력할 문자열을 입력하고, 이를 나눈 문자열을 저장하는 문자열 배열 String part[] 를 선언해둔다. 그리고 저장하려는 문자열 배열에 아래와 같이 작성해주면 본래 의도대로는 아니었으나, 기존 목표였던 숫자만을 선별해 저장하는데는 성공할 수 있었다. 이제 뽀갠 문자열을 필요에 맞게 사용하면 된다. 반대로 문자열만을 선별하자면 정규표현식을 또 요리조리 만져야만 하겠다. 아직 정규 표현식을 제대로 이해하고 활용하기는 좀 어렵다는 ..
[JAVA] double과 int 간의 형변환을 항상 주의할 것. 백준문제 4344번을 진행하면서 출력을 소숫자리까지 해야하기 때문에 double 배열을 사용하였는데 알고리즘은 문제 없는 것 같은데 0.000%로 출력이 되어 확인을 해보니 평균을 넘는 학생 수인 count와 student가 int형 변수였고, 이에 double형 배열에 값이 들어가지 않은 것이다. 수정 이후엔 올바르게 출력 되었으며 반올림 및 소숫자리 출력을 위해 String.format("형식", 변수) 를 사용하였다. string 변수에 String.format("%.3f", rate[i]) 를 넣어준 후 그대로 sout으로 %를 달아 출력해주면 된다. 번외로 입력받은 수를 거꾸로 돌린 뒤 출력하는 문제가 있었는데, 여기서도 요즘 자주 애용하는 toCharArray를 사용해줬는데, char에 저장된..
[JAVA] 문장을 글자별로 추출하고 싶을 때, String 배열을 char 배열로 바꿔보자 백준 문제 8958번을 해결하면서 처음엔 String Tokenizer로 해결하려다 다 붙어있는 문장을 글자단위로 떼어내기가 어려웠고 검색을 통해 String 배열을 Char 배열로 바꾸는 법을 알았다. 덕분에 해결. 입력 예시 5OOXXOXXOOOOOXXOOXXOOOXOXOXOXOXOXOXOOOOOOOOOOOOOOXOOOOXOOOOX 출력 예시 10975530 char[] strToChar = input[i].toCharArray() 가 핵심. 그리고 개별 문장은 잘 처리가 되는데 한번에 하니까 자꾸 결과가 이상하게 나와서 보니까 초기화를 제대로 못해준 곳이 있었다. 변수 초기화 항상 신경쓸것. 문제 : https://www.acmicpc.net/problem/8958 참조 : http://jyosss..
[JavaScript] form 형식안의 버튼에서 클릭한 버튼의 value 값 스크립트에 전달하기 덕지덕지 코드를 발라서 프로젝트를 하고 있는데 form 형식안의 버튼에서 한 버튼을 클릭시 어떤 버튼을 눌렀는지에 따라 다른 값을 전달해주려 하는게 생각보다 잘 안되고 찾아도 안나와서 애를 먹었다. 코딩이랑 구글링을 하며 1시간정도 비비고 나서 스택 오버플로에서 해답을 찾았다. 아래에는 작업중인 프로젝트에서 테스트에 사용한 부분들만을 추려보았다. function checkRow(event) { var event_test = event; alert(event_test); } submit 타입으로 만들어 둔 버튼들에서 onClick을 위와같이 선언해주면 id에 따라 id가 포함된 요소의 value 값을 실행하고자 하는 함수에 입력해 실행할 수 있다. 위와같은 경우에는 제출 버튼을 눌렀을 때 제출버튼의 id ..
[JDBC] jdbc driver class not found 오류시 수업시간에 배운대로 mysql connector를 프로젝트의 속성에서 Java build path에 추가해주었고 ( mysql-connector-java-5.1.42-bin 파일) 그래도 jdbc driver class not found 오류가 생겨 WEB-INF/lib 에도 import로 같은 파일을 추가해주었는데 그래도 되지 않아 짧게 찾아보니 프로젝트를 돌리고 있는 아파치 서버에 돌아가는 모든 프로젝트에 같은 작업을 해 주어야만 오류없이 실행이 된다는 것이었다. 그러니까 아래에서 지금 실습을 위해 아파치서버에 적용한 프로젝트가 두개였는데 내가 mysql connector를 적용한 프로젝트는 TestJSP 뿐이었고, 2010 프로젝트에는 적용이 되지 않은 채 Configured 항목에 Add 되어 함..
[Codility] Distinct - 특정 배열에 포함된 모든 숫자의 종류 수 구하기 주어진 배열을 읽어 배열을 구성하고 있는 정수의 개수를 구해 return 하는것이 문제이다. 배열을 읽으면서 선언해 준 ArrayList에 동일한 원소가 있는지 검사, 없으면 add로 추가. 최종으로 원소를 추가한 ArrayList의 최종 사이즈를 size()로 return 하면 완료. 아래 코드 부문은 inteliJ에서의 실행, 출력을 위해 코딜리티 코드와 다른 부분이 있음. 시간복잡도는 O(N**2). 언제쯤 Performance까지 점수를 딸 수 있는 코드를 짤 수 있을지..
[Codility] LongestPassword - java.util.regex 를 활용해 조건을 만족하는 문자열 걸러내기 코딜리티에서 Indeed Prime 2015 Challenge 항목에 포함된 Task이다. 문제는 주어진 문자열에서 띄어쓰기로 분간된 암호들 중 주어진 조건을 만족하는 가장 긴 암호의 길이를 return하는 것이다. 암호의 조건은 숫자를 무조건 포함하며 홀수 개의 숫자만을 가지고, 짝수 개의 문자만을 가질 수 있다. 입력 된 문자열에서 유효한 암호가 존재하지 않을 때에는 -1을 return 해주어야 한다. InteliJ에서 실행 및 출력을 위해 직접 문자열을 정의해주었고 return 값을 return하지 않고 sout으로 출력하도록 하였다. 처음에 아 드디어 됬다고 하다가 점수가 10점밖에 안나와서 뭐가 문제일까 하다가.. 문자와 숫자에 걸린 홀수개 혹은 짝수개의 조건이 있던 것을 나중에 알았다. 여기에..