Java 48

[프로그래머스] K번째수

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 문제 설명의 내용에 따라 그대로 구현 import java.util.Arrays; public class Q30_42748 { public int[] solution(int[] array, int[][] commands) { int[] answer = new int[commands.length]; for (int i = 0; i < commands.length; i++) ..

[프로그래머스] 혼자 놀기의 달인

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131130?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 배열의 값은 다음 수의 인덱스를 가리키고 있음 가리킨 인덱스를 추적하여 시작한 인덱스로 되돌아오면 하나의 묶음 각각의 묶음의 길이 중 가장 긴 길이와 두 번째 긴 길이의 곱을 반환 묶음의 길이를 구하기 위하여 재귀를 사용 public class Q30_131130 { public int solution(int[] cards) { int lengt..

[프로그래머스] 같은 숫자는 싫어

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 인수 arr에서 중복되는 숫자는 예측할 수 없으므로 ArrayList를 사용 arr의 숫자는 0에서 9 사이이므로 연속하는 숫자를 비교하기 위한 변수의 초기값은 -1로 설정 import java.util.ArrayList; import java.util.List; public class Q30_12906 { public int[] solution(int []arr) { i..

[프로그래머스] 폰켓몬

문제 https://school.programmers.co.kr/learn/courses/30/lessons/1845 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 사용 언어: Java 가장 많은 종류의 폰켓몬을 골랐을 때 그 폰켓몬의 종류의 수를 반환 폰켓몬의 종류는 중복이 존재 고를 수 있는 수보다 폰켓몬의 종류가 적은 경우에는 폰켓몬의 종류의 수가 폰켓몬을 고를 수 있는 종류의 한계 폰켓몬의 종류를 Set을 이용하여 중복을 제거 import java.util.HashSet; import java.util.Set; public cl..

[Java] lucene 간단 예제

검색 엔진으로 많이 사용되고 있는 lucene에 대한 간단 예제 프로젝트는 Gradle, 언어는 Java로 작성 dependencies { // https://mvnrepository.com/artifact/org.apache.lucene/lucene-core implementation group: 'org.apache.lucene', name: 'lucene-core', version: '8.9.0' // https://mvnrepository.com/artifact/org.apache.lucene/lucene-analyzers-common implementation group: 'org.apache.lucene', name: 'lucene-analyzers-common', version: '8.9.0..

[프로그래머스] 완주하지 못한 선수

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 및 풀이 제한 사항에서 동명이인이 존재 한다 하였기에 동명이인이 모두 완주 하거나 동명이인 중에 한명이 완주를 하지 못한 상황을 고려 이름이 중복을 고려 해야 하니 set 보다는 list를 사용 import java.util.*; /** * 정확성 통과 * 효율성 통과하지 못함 */ public class Q30_42576 { public String solution(String[..

[ubuntu] 우분투 16.04에 자바 8 설치

환경Ubuntu 16.04.4 LTS $ java -version자바 설치 여부 확인한다 현재 자바가 설치되어 있지 않다 $ sudo add-apt-repository ppa:webupd8team/java자바 8을 설치하기 위해서 ppa를 설치 add-apt-repository 명령어를 찾을수 없다고 나온다면 $ sudo apt-get install python-software-properties$ sudo apt-get install software-properties-common위 두줄의 명령어를 입력한다 ppa를 설치 하고 난 뒤$ sudo apt-get update 업데이트가 끝난 후$ sudo apt-get install oracle-java8-installer명령어 입력한다 OK를 선택 YES..

[Java] WebDriver(Chrome)를 이용하여 웹 페이지 스크린샷 생성하기

WebDriver를 이용하면 자바를 이용하여 특정 웹 페이지의 정보를 가져오거나 스크린샷을 생성 할 수 있다 https://sites.google.com/a/chromium.org/chromedriver/downloads 우선 자바를 이용하여 크롬을 컨트롤 해야 하므로 다운로드 링크로 들어가서 각자 OS에 맞추어서 드라이버를 다운로드 한다 이클립스에 프로젝트를 만들고 Maven으로 설정하고 다운로드한 웹 드라이버는 해당 프로젝트의 webdriver 디렉토리에 이동 한다 웹 드라이버의 라이브러리는 2가지가 필요하다 selenium-server gson 위 두가지 라이브러리는 https://mvnrepository.com/에서 검색하여 pom.xml 파일에 등록한 후 Maven Update를 하여 라이브러리..

[Cloudant] View 생성 - Map 함수

Design Documents에서 New View를 선택한다. View가 저장되는 문서의 id의 앞은 _design/으로 시작한다 그러므로 그 다음에 위치할 id와 해당 view를 의미하는 index name을 입력한다. 그리고 Map function에서 어떠한 문서를 인덱스에 추가할지를 javascript로 구현한다. 위와 같은 문서 형식이 있다고 가정하고 문서의 타입이 student인 문서만 검색하는 뷰는 아래와 같이 작성 할 수있다. 위 View 함수는 간단한 예제이다. 우상단의 API 버튼을 누르면 해당 뷰를 Rest방식으로 호출 할 수 있는 URL을 확인 할 수 있다. 뷰를 호출은 GET방식 호출이기 때문에 간단하게 웹 브라우저로 호출 할 수 있다. URL은 https://{cloudant계정}..

[Cloudant] 문서 조회

웹 UI로 문서를 읽는 것은 어렵지 않다. 메뉴에서 Databases를 선택한 후 조회하고자 하는 문서의 데이터베이스를 선택한다. 데이터베이스를 선택한 후에 오른쪽에서 조회하고자 하는 문서를 더블 클릭하거나 문서의 우상단의 팬 모양을 클릭한다. 조회와 동시에 수정도 가능한 페이지가 열린다. 다음은 Java 라이브러리를 이용한 조회이다. 한번에 여러개의 id를 사용하여 조회가 가능하므로 List 형태로 반환이 된다. 하나의 문서를 반환 하고 싶은 경우에는 문자열 하나만 keys 메서드를 통하여 설정 후 문서 반환을 요청하면 된다. 여러개의 문서를 반환 하고 싶은 경우에는 문자열 배열을 통하여 여러개의 id를 keys 메서드를 통하여 설정 후 문서 반환을 요청하면 된다.