전체 글 73

[프로그래머스 / lv 2] 전화번호 목록 (JAVA_해시)

문제 풀이방법 배열 이중포문을 돌며 String class의 함수인 startsWith을 사용하여 true 반환 시 false 리턴 해시맵(HashMap) substring 함수를 통해 0부터 각 전화번호의 모든 숫자까지 돌며 해시맵에 포함되는지 확인하여 해당 시 false 리턴 같은 전화번호가 중복되지 않기 때문에 각 전화번호를 확인 할 필요 없음( substring 마지막 문자 전까지) value 값은 쓰이지 않으므로 HashSet으로 사용 가능 해시셋(HashSet) 해시맵과 동일 코드 👇🏻 HashMap package hashmap_pro; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRea..

코딩테스트 2023.03.16

[프로그래머스 / lv 1] 완주하지 못한 선수 (JAVA_해시)

문제 풀이방법 배열 각각 정렬 후 앞에서부터 하나씩 비교하여 다를 경우 리턴 마지막까지 모두 같다면 참여자 배열의 마지막 값을 리턴 해시맵 참여자를 해시맵에 추가하며 value를 하나씩 증가 getOrDefault(Object key, V DefaultValue) key : 값을 가져와야하는 요소의 키 deaultVaule : 지정된 키로 매핑된 값이 없는 경우 반환되어야하는 기본값 찾는 키가 존재한다면 찾는 키의 값을 반환하고 없다면 기본 값을 반환하는 메서드 중복 처리 가능 완주자를 해시맵에 추가하며 value를 1씩 감소 value가 0이 아닌 key값을 리턴 코드 👇🏻 배열 package hashmap_pro; import java.io.BufferedReader; import java.io.IO..

코딩테스트 2023.03.16

[Database #16] 제약조건(2), 뷰(view)

제약조건 FOREIGN KEY 외래키, 외부키, 참조키 다른 테이블의 컬럼값을 참조(REFERENCE)하여 참조하는 테이블의 값만 허용한다. FOREIGN KEY 제약 조건을 통해서 다른 테이블과의 관계(RELATIONSSHIP)가 형성된다. 외래키로 지정된 GRADE_CODE 는참조하는 USER_GRADE테이블의 GRADE_CODE 에있는 데이터만 INSERT 가능하다. constraint fk_grade_code foreign key (grade_code) references user_grade(grade_code) DML : DELETE DELETE FROM USER_GRADE WHERE GRADE_CODE = 4; 삭제 옵션 일반적으로 참조된는 원본 컬럼 내용을 삭제하려고 할 때 외래키로 사용중인..

Database 2023.03.15

[Database #15] SUB QUERY

SET OPERATOR 두개 이상의 SELECT한 결과를 합치거나하는 집합 형태의 결과물로 조회하는 명령어 합집합 UNION : ROW 늘어남 두개 이상의 SELECT한 결과(RESULT SET)를 구하는 명령어 만약 중복이 있을 경우 중복되는 결과는 한번만 보여준다 UNION ALL : ROW 늘어남 두개이상의 SELECT한 결과(RESULT SET)를 구하는 명령어 만약 중복이 있을 경우 중복되는 내용도 그대로 조회하여 보여준다. JOIN : COLUM 늘어남 두개이상의 테이블을 하나로 합쳐 사용하는 명령 구문 두개의 테이블(EMPLYOEE, DEPARTMENT)에서 공통 컬럼의 이름이 다를 경우 join DEPARTMENT ON(DEPT_CODE = DEPT_ID); 공통 컬럼의 이름이 같을 경우 ..

Database 2023.03.14

[Database #14] 함수(Function)

연산자 비교 연산자 , = : 크기를 비교 = : 같다 !=, : 같지않다 like : 입력한 숫자, 문자가 포함된 정보를 조회할 때 사용하는 연산자 '_' : 임의의 한 문자 '%' : 몇자리 문자든 관계없이 in 연산자 in(값1, 값2, 값3, ...) 안에 있는 값 중 하나라도 일치하는 경우 조회 함수 FUNCTION 문자 관련 함수 length / char_length 문자열의 길이를 계산하는 함수 length() : byte의 길이(영어 1, 한글 3) char_lenth : 글자수 instr : 주어진 값에서 원하는 문자가 몇번째인지 찾아 반환하는 함수 substr : 주어진 문자열에서 특정 부분만 꺼내어 오는 함수 LPAD / RPAD : 빈칸을 지정한 문자로 채우는 함수 LTRIM / R..

Database 2023.03.14

[프로그래머스 / lv 1] 폰켓몬 (JAVA_해시)

문제 폰켄몬의 종류가 담긴 배열 nums가 있고 여기서 가져갈 수 있는 폰켓몬의 최대값은 nums/2이다. 가져갈 수 있는 폰켄몬 종류의 최대 갯수를 구해야한다. (중복으로 가져가면 해당 폰켄몬의 갯수는 무조건 1이다.) 풀이방법 중복값 제거를 위해 HashSet을 사용 중복값 제거를 한 HashSet size를 통해 구할 수 있는 폰켄몬의 최대 종류 갯수와 가져갈 수 있는 폰켓몬의 최대값인 nums/2를 비교하여 가져갈 수 있는 폰켄몬 종류의 최대 갯수를 구한다. 중복을 제거한 Set의 크기가 nums/2보다 크면 nums/2를, 작으면 Set 사이즈를 리턴 코드 package hashmap_pro; import java.io.BufferedReader; import java.io.IOException..

코딩테스트 2023.03.12

[백준 / 실버 4] 1940 : 주몽 (JAVA)

문제 풀이방법 1. 탐색할 데이터를 오름차순 정렬한다. 2. 투 포인터 알고리즘 사용 투 포인터 i, j를 각각 제일 작은 수와 제일 큰 수에 위치시킨다. i와 j가 만날 때까지 포인터를 이동시키며 탐색한다. 코드 👇🏻 이중포문 사용 package boj1940; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br ..

코딩테스트 2023.03.11

[백준 / 실버 5] 1652 : 누울 자리를 찾아라 (JAVA)

문제 풀이방법 현재칸 +1까지 누울 수 있고 현재칸 +2가 누울 수 없는 경우만 카운트한다. 이때, if문 조건을 통해 배열 인덱스 초과를 주의해야한다. 코드 package boj1652; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReade..

코딩테스트 2023.03.11

[백준 / 브론즈2] 1100 : 하얀 칸 (JAVA)

문제 풀이방법 하얀색 말의 조건을 파악한다. 짝수행에서는 짝수번째, 홀수행에서는 홀수번째에 F인 경우로 for문과 if문을 활용하여 카운트한다. 코드 package boj1100; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int count = 0; for (int i = 0; i < 8; i++) { Strin..

코딩테스트 2023.03.09

[Database #13] SQL

SQL Structured Query Language : 구조화 된 질의 언어 DDL (Data Definition Language) 데이터 정의 언어 -> 생성, 삭제, 수정 CREATE 데이터베이스, 테이블, 뷰(view), 프로시저(prodedure) 등을 생성 CREATE DATABASE 데이터베이스; 데이터베이스 생성 CREATE TABLE 테이블명 ( 컬럼명 DATA_TYPE(SIZE), CONSTRAINT 제약조건 제약조건 (컬럼명) ); 테이블 생성 CREATE VIEW 뷰명 AS SELECT ~; * auto_increment : 숫자 자동 증가 옵션 (sequence) ALTER 데이터베이스, 테이블, 뷰 프로시저 등을 수정 ALTER TABLE 테이블명 ADD | DROP | MODI..

Database 2023.03.09