본문 바로가기

[JAVA] ArrayList를 복사하고 정렬하고 싶을 때. 백준 문제 2822번을 풀기 위해 처음에 점수 입력을 Integer형 ArrayList에 담고 이를 또다른 ArrayList에 복사하여 오름차순 정렬 후 상위 5개 점수 이외에는 삭제. 그리고 처음 입력한 ArrayList와 복사해 정렬한 ArrayList를 비교해 동일한 점수의 항목이 있을 때 문제 번호를 출력하도록 했다. 뭔가 좀 더 단순하게 하고 싶었는데 ArrayList를 복사하는게 그냥 일반 변수 복사하듯이 되지 않는다는 것과 문제 번호를 출력해야 하는데서 하위 점수들을 삭제하다 보니 조금 복잡해졌다. ArrayList input = new ArrayList();ArrayList sortedList; // 복사해줄때 객체화 되기 때문에 선언만 해도 무방. sortedList = ..
[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 ..
[inteliJ] import한 git 프로젝트에서 branch 이동하기 이번에 git을 과제에 적극 활용하면서 의문점이 떠올랐다. 이전에는 branch를 생성하면 전환을 어떻게 해야할지 몰라서 git 콘솔에서 vi 에디터로 한두줄을 바꾸거나 branch 생성을 아예 하지않고 뭉텅이로 pull commit을 반복하면서 프로젝트를 진행하기도 했다. 이번엔 방법도 찾게된 덕에 브랜치를 한번 만들고 intelliJ에서 수정하고 push까지 해보기로 했다. 우선 git bash에서 임의의 브랜치를 만들었다. (아래서 보면 알겠지만 먼저 이럴거 없이 바로 intelliJ에서 브랜치 생성도 가능하다.) 다음 inteliJ에 git clone으로 받아온 프로젝트를 import해주고 준비과정이 끝난 뒤 우측 하단을 주목하면 Git:master 라고 표시된곳을 확인할 수 있는데 이곳을 클릭해..
[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점밖에 안나와서 뭐가 문제일까 하다가.. 문자와 숫자에 걸린 홀수개 혹은 짝수개의 조건이 있던 것을 나중에 알았다. 여기에..
윈도우10에서 CMD를 통해 젠킨스, SonarQube 실행하기 1. CMD창 관리자 권한으로 실행. 2. Jenkins가 설치된 폴더로 cd 명령어로 이동 3. java -jar jenkins.war 입력 4. localhost:8080으로 이동 해당 과정중에 오류가 있을시엔 작업관리자에서 자바와 관련된 프로세스들을 모두 종료해주고 다시 수행한다. 1. CMD창 관리자 권한으로 실행. 2. SonarQube가 설치되어있는 폴더 내부에 bin/해당하는 운영체제 버전에 맞는 폴더/ 로 이동 3. start StartSonar.bat 입력 마찬가지로 해당 과정중에 오류가 있을시엔 작업관리자에서 자바와 관련된 프로세스들을 모두 종료해주고 다시 수행한다.