본문 바로가기

전체 글192

[JAVA] 객체 비교 시 equals()와 hashCode()는 왜 같이 사용해야 할까?? equals()와 hashCode() o hashCode() : 두 객체가 같은 객체인지, 동일성(identity)를 비교하는 메소드 o equals() : 두 객체의 내용이 같은지, 동등성(equality)를 비교하는 메소드 equals()는 객체의 주소를 비교하여 객체의 주소가 서로 동일한 경우 동등하다고 인식합니다. 즉, 오직 자기 자신과만 같다고 인식합니다. 그렇기에 @Override로 재정의 하여 비교 대상을 재정의 함으로써 객체의 비교가 가능하고 Map의 key와 Set의 원소로 사용할 수 있습니다. 본문 보통 객체의 동등성 비교를 위해 equals()오버라이딩을 하면 hashCode()도 같이 오버라이딩 하라고 하는데 이에 대한 이유를 알아보려고 합니다. HashSet에 객체를 add하면 H.. 2021. 3. 26.
[백준] 2869번 - 달팽이는 올라가고 싶다 (JAVA) www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net - 문제 – - 풀이 과정 – 문제를 간단히 읽어보면 달팽이가 일정 높이까지 가는데 걸리는 일 수를 계산하는 문제입니다. 하루 중 낮에는 올라갔다가(up) 밤에는 미끄러 지기에(down) up-down을 하면 달팽이가 하루 동안 이동하는 거리를 계산할 수 있습니다. 따라서 나무 길이를 length라고 할 때 length/(up-down)을 하여 며칠이 걸리는지 계산할 수 있는데 이렇게 계산하면 오답처리가 됩니다. 왜냐하면 문제에서 ‘정상에 올라간 후에는 미끄러지지 않는.. 2021. 3. 25.
[JAVA] EOF(End Of File)를 이용한 While문 종료하기 o EOF란 End Of File의 약자로 파일의 끝부분을 나타냅니다. 입력(파일)의 개수가 정해지지 않고 입력을 반복해서 받을 때 입력의 마지막 즉, 더 이상 입력할 값이 없는 것을 의미합니다. o 그렇기에 반복 횟수가 정해져 있는 For문 보다는 While문에서 주로 사용합니다. o 자바에서 System.in은 사용자가 ctrl+z키를 입력하면 입력이 끝난 것(EOF)으로 처리합니다. o 입력을 받는 클래스는 Scanner, BufferedReader가 있으며 각 클래스별 EOF 처리 방법은 아래와 같습니다. Scanner 클래스 o Scanner 클래스에서는 hasNext~()메소드를 사용하면 EOF를 이용해 while문을 종료할 수 있습니다. o hasNext~()메소드는 입력 값이 생기기 전까지.. 2021. 3. 25.
[SQL] PL/SQL – 반복문(LOOP,FOR,WHILE) 반복문(LOOP, FOR, WHILE) BASIC LOOP o 특정 조건까지만 반복문을 수행하며 EXIT 예약어에 반복을 중지할 수 있는 조건을 작성한다. o EXIT는 실행하는반복문을 빠져나오는 예약어로 EXIT가 없을 경우 무한 루프에 빠질 수 있다. o 사용형식 LOOP 실행할 구문 EXIT 조건문 END LOOP 1~10까지 출력하기 DECLARE I NUMBER :=1; BEGIN LOOP DBMS_OUTPUT.PUT_LINE(I); I:=I+1; -- IF I>10 THEN EXIT; -- IF문을 활용한 EXIT 실행 -- END IF; -- IF문 또는 EXIT WHEN I>10; EXIT WHEN I>10; END LOOP; END; / FOR o FOR문은 FOR EACH문과 비슷하게 .. 2021. 3. 25.
[SQL] PL/SQL – 조건문(IF, ELSE, ELSIF, CASE) 조건문 (IF, ELSE, ELSIF, CASE) IF ~ THEN ~ END IF o 조건문은 IF명령어를 사용하여 조건에 일치하면 THEN 이후 문장을 실행한다. o 사용 형식 IF 조건문 THEN 실행할 구문 END IF; DECLARE V_EMPNAME EMPLOYEE.EMP_NAME%TYPE; BEGIN SELECT EMP_NAME INTO V_EMPNAME FROM EMPLOYEE WHERE EMP_ID='&사번'; IF V_EMPNAME='선동일' -- V_EMPNAME이 선동일이면 ‘대표!’를 출력하는 조건문 THEN DBMS_OUTPUT.PUT_LINE('대표!'); END IF; END; / IF ~ THEN ~ ELSE ~ END IF o ELSE 문은 IF문에서 해당하는 조건이 없는.. 2021. 3. 25.
[백준] 1193번 - 분수찾기 (JAVA) https://www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net - 문제 - - 풀이 과정 - T = 분모, 분자의 합 cur = 각 대각선 당 원소의 개수 prev_sum = 이전 대각선 원소 개수의 합 주어진 분수에서 규칙을 찾아보면 각 대각선 별 분모, 분자의 합이 T와 같습니다. 또한 대각선의 원소의 개수가 하나씩 증가하는 것을 볼 수 있습니다. 여기서 문제는 X번째의 분수를 찾아야 하는데 순서가 1/1 -> 1/2 -> 2/1 -> 3/1 -> 2/2 -> …. 순으로 진행됩니다. 현재 원소의 개수가 홀수면 ↗방향으로 진행이 되고 원소의 개수가 짝수면 ↙방향으로 진행이 됩니다. 진행.. 2021. 3. 23.
[SQL] PL/SQL – 타입 변수 선언, SELECT, INSERT문 처리 PL/SQLo Procedural Language extension to SQL의 약자로 오라클 자체에 내장되어 있는 절차적 언어이다.o SQL의 단점을 보완하여 SQL문장 내에서 변수의 정의, 조건 처리, 반복 처리 등 지원한다.o PL/SQL 유형에는 2가지 유형이 있다.익명블록 : 이름이 없어 사용 후 재호출이 불가능한 PL/SQL구문PROCEDURE & FUNCTION : 이름이 있어 사용 후 재호출이 가능한 PL/SQL구문 o 구조구조(익명블록) DECLARE -- 선언부 변수선언BEGIN -- 실행부 제어문, 반복문, 함수 등EXCEPTION -- 예외처리부END;/ o SET SERVEROUTPUT O.. 2021. 3. 23.
[SQL] OBJECT SEQUENCE - 순차적 번호 생성 OBJECT SEQUENCE o 순차적으로 정수 값을 자동으로 생성하는 객체로 자동 번호 발생기 역할을 한다. o 옵션을 지정하지 않아도 호출 시 자동으로 1씩 증가한다. o 표현식 CREATE SEQUENCE 시퀀스명[옵션] o 시퀀스작동 예약어 시퀀스.NEXTVAL, 시퀀스.CURRVAL를 사용하여 생성한 시퀀스를 사용할 수 있다. o NEXTVAL, CURRVAL - 동일한 세션에서 CURRVAL를 출력하려면 NEXTVAL을 출력하고 실행해야 한다. o NEXTVAL/CURRVAL 사용 가능 여부 o 시퀀스 생성하기 -- 1부터 실행, 실행 시 마다 1씩 증가 -- 장점 : 자동으로 증가하기에 중복값을 체크하지 않아도된다. CREATE SEQUENCE SEQ_BASIC; SELECT SEQ_BASI.. 2021. 3. 23.
[SQL] VIEW – 인라인 뷰, 스토어드 뷰, VIEW 옵션 인라인 뷰(INLINE-VIEW) o 일반적으로 FROM절에 사용된 서브쿼리의 결과에 별칭을 붙인 것을 말함 o FROM절에 서브쿼리를 작성하며 서브 쿼리의 결과를 테이블로 사용하는 것이다. o FROM절에 서브쿼리를 직접 사용해도 되고 따로 뷰를 생성 후 FROM절에 생성한 뷰를 사용해도 됨 o 테이블은 실제 물리적 테이블에 있는 값이 아닌 가상의 테이블 값이다. -> 실제 테이블에서 추출한 가상의 테이블(실제 DB에 저장되어 있지 않은 테이블) o 1번만 사용할 수 있는 테이블로 쓰이는 서브 쿼리 문 -> 자바의 익명 클래스와 같은 개념 SELECT ROWNUM, EMP_NAME, SALARY FROM EMPLOYEE WHERE ROWNUM 2021. 3. 22.