본문 바로가기

분류 전체보기

(79)
자바 쓰레드 1. 자바 쓰레드 생성하는 방법 - Thread 클래스 상속 - Runnable 인터페이스 구현 2. 구현하기 Thread 객체를 상속받아 병렬처리 구현하기 import java.util.ArrayList; class MyThread1 extends Thread { public MyThread1(String threadName) { super(threadName); } public void run() { for (int i = 0; i < 100; i++) { System.out.println(this.getName() + " : " + i); } System.out.println(); } } public class ThreadTest1 { public static void main(String[] ar..
[Java Collection Framework] HashMap, HashTable, Map 1. 해싱이란? - (알고리즘) 해시 함수는 데이터를 고정된 크기의 해시값, 코드로 변환한다. - (자료구조) 해시 함수를 활용해 데이터를 저장하고 빠르게 검색한다. (상수시간) - 해시충돌 : 다른 입력값이 동일한 해시값을 가지는 것을 의미한다. - 해시충돌 방지 (개방 주소법) : 충돌이 발생하는 경우 다른 버킷에 데이터를 저장한다. - 해시충돌 방지 (체이닝) : 각 버킷이 연결리스트의 헤더를 가지고 충돌이 발생하면 다음 연결 리스트에 데이터를 저장한다. 2. Java HashMap - Key:Value 쌍을 구조로 데이터를 저장 및 조회하는 자료구조 - Key:Value 쌍의 개수에 따라 동적으로 크기가 증가하는 Associate Array - 해시 충돌 방지를 위해 체이닝 기법을 사용한다. - ..
[프로그래머스 SQL] 조건에 부합하는 중고거래 상태 조회하기(Lv.2) 1. 문제 설명 다음은 중고거래 게시판 정보를 담은 USED_GOODS_BOARD 테이블입니다. USED_GOODS_BOARD 테이블은 다음과 같으며 BOARD_ID, WRITER_ID, TITLE, CONTENTS, PRICE, CREATED_DATE, STATUS, VIEWS은 게시글 ID, 작성자 ID, 게시글 제목, 게시글 내용, 가격, 작성일, 거래상태, 조회수를 의미합니다. [ 테이블 구조 ] Column Name TYPE NULLABLE BOARD_ID VARCHAR(5) FALSE WRITER_ID VARCHAR(50) FALSE TITLE VARCHAR(100) FALSE CONTENTS VARCHAR(1000) FALSE PRICE NUMBER FALSE CREATED_DATE DATE..
[프로그래머스] 베스트앨범 Lv.3해시 : 자바 풀이 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. - 속한 노래가 많이 재생된 장르를 먼저 수록합니다. - 장르 내에서 많이 재생된 노래를 먼저 수록합니다. - 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 제한사항 genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된 횟수입니..
[프로그래머스] 의상(해시 Lv.2) : 자바풀이 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 종류 이름 얼굴 동그란 안경, 검정 선글라스 상의 파란색 티셔츠 하의 청바지 겉옷 긴 코트 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clothes의 모든..
[프로그래머스] 전화번호 목록 (해시 Lv.2) : 자바풀이 문제 설명 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 제한사항 phone_book의 길이는 1 이상 1,000,000 이하입니다. 각 전화번호의 길이는 1 이상 20 이하입니다. 같은 전화번호가 중복해서 들어있지 않습니다. 입출력 예 phon..
자바 배열의 길이 순으로 정렬하기 Arrays.sort(phone_book, new Comparator() { @Override public int compare(String s1, String s2) { return s1.length() - s2.length(); } }); Arrays.sort(phone_book, (s1, s2) -> s1.length() - s2.length()); Arrays.sort(phone_book, Comparator.comparing(String::length));
Java Lambda Expression, 자바8 람다식 1996년 자바는 Generics 등장 직후 Lambda Expression을 보여주었다. 람다 표현식(람다식)으로 자바는 함수형 언어의 특징을 갖추게 되었다. 람다식은 1930년대 알론조 처치의 람다 대수식으로부터 그 뿌리를 두고 있다. 람다식을 사용하면 코드가 간결해지고 지연 연산 등을 통해 성능을 향상시킬 수 있다. 하지만 모든 엘리먼트를 순회하는 경우 성능이 떨어지고 코드 분석이 어려워지는 단점이 있다. 자바는 객체지향언어이기 때문에 아래 함수를 사용하기 위해서는 클래스를 만들고 그 안에 메서드를 작성한 뒤 객체를 생성해야 한다. static으로 객체를 생성하지 않고도 실행할 수 있으나 보질적으로 클래스를 정의해야만 한다. public int sum(int a, int b) { return a +..