전체 글

· Algorithm
1.문제 Q. N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. * 시간 복잡도가 O(n²)인 정렬 알고리즘으로 풀 수 있습니다. 예를 들면 삽입 정렬, 거품 정렬 등이 있습니다. * 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 2.삽입정렬 예시 3.풀이 public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int size = sc.nextInt(); int[] arr = new int[size]; //수 입력받기 for..
· Algorithm
1. 문제 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로..
· Backend/SQL
▶ 원인 PK가 2개인 테이블의 UPDATE문에 WHERE절을 1개만 지정했다 문제는 이걸 커밋하고 1시간 후에나 알게 된 것..... 내가 의도했던 것보다 많은 데이터가 바뀌었다. 검색해보니 대부분 UPDATE 복구는 10분 이내에 하는 방법이라 나와는 맞지않았다. 해서 다음을 위해 특정 시간대로 복구하는 쿼리를 기록한다. -- 복구할 데이터 확인 ( 오늘 오전 8시 기준 ) SELECT * FROM 테이블명 AS OF TIMESTAMP(TO_DATE('2022-09-14 08:00', 'YYYY-MM-DD HH24:MI:SS')) ORDER BY 컬럼명 ; -- 현재 테이터 확인 SELECT * FROM 테이블명 ORDER BY 컬럼명 ; ORDER BY는 없어도 되지만 데이터 확인을 위해 넣었다. ..
· Backend/SQL
/*테이블 백업(복사)*/ CREATE TABLE 백업테이블명(신규) AS SELECT * FROM 기존테이블명; /*백업본 제약조건 추가 --> 복사하면 제약조건 + 인덱스 유실 */ ALTER TABLE 자식테이블 ADD CONSTRAINT 제약조건명 PRIMARY KEY (컬럼명, 컬럼명...) ADD CONSTRAINT 제약조건명 FOREIGN KEY (자식컬럼명) REFERENCES 부모테이블 (부모컬럼명); /*제약조건 검색*/ SELECT TABLE_NAME ,CONSTRAINT_NAME ,INDEX_NAME FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME LIKE '%제약조건명%' ; /*제약조건 삭제*/ ALTER TABLE 테이블명 DROP CONSTRAI..
· Backend/SQL
직접 설계하고 구현했던 DB구조는 잘 알고 있었지만, 취업 후 이미 서비스 되고 있는 DB의 구조를 파악하는 것이 쉽지 않았다. 특히 규모가 큰 프로젝트일수록 ERD와 테이블정의서로 파악하기 어려웠기 때문에 도움이 되었던 쿼리문을 정리해보았다. 1. 특정 컬럼이 존재하는 테이블, 뷰 검색 --컬럼 검색 SELECT DISTINCT TABLE_NAME --FROM ALL_TAB_COLUMNS/*전체 테이블*/ FROM USER_TAB_COLUMNS/*접속한 계정의 전체 테이블*/ WHERE COLUMN_NAME LIKE '%컬럼명%' ORDER BY TABLE_NAME ; >> 컬럼명 MEM_ID 검색 결과. >> MEM_ID가 포함된 컬럼을 가진 테이블을 알고 싶었기 때문에 LIKE 문을 사용했지만, 컬..
· ETC
1. 작업창 생성 및 관리 Ctrl + N 프로젝트 / 패키지 / 클래스 생성하기 (New)Ctrl + E 현재 작업 중인 창 변경 Ctrl + W 현재 작업중인 창 종료 Ctrl + M 현재 작업 창 전체화면 / 전체화면 취소 Ctrl + E 현재 열린 작업 창 목록 열기 > 화살표로 선택해서 창 열기 가능 F2 프로젝트/패키지/클래스 등의 이름을 변경 할 때 사용. 절대 바탕화면 폴더에서 바꾸지말기ㅠㅠ Ctrl + Shift + O 전체 import 2. 소스 편집 Ctrl + A 전체 선택 Alt + Shift + A 열모드 (세로 블럭 드래그) Tab 들여쓰기 Ctrl + I 들여쓰기 자동 수정 Shift + Tab 내어쓰기 Ctrl + / 한줄 주석 처리 ( = // ) Ctrl + Shift ..
· Algorithm
▶ SQL 코딩 테스트 연습 > GROUP BY > 입양 시각 구하기(2) 1.테이블 정보 2.문제 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 3.요구사항 분석 및 SQL문 1) 1차 시도 - 오답 -- 조회 : 시간, 입양 횟수 -- 그룹 : 시간별 (0 - 23) -- 정렬 : 시간순 SELECT TO_CHAR(DATETIME, 'HH24') AS 시간 ,COUNT(DATETIME) AS 입양횟수 FROM ANIMAL_OUTS GROUP BY TO_CHAR(DATETIME, 'HH24') HAVING TO_CHAR(DATETIME,..
· Algorithm
[ 코디테스트 연습 > GROUP BY > 입양 시각 구하기 (1) ] 1. 테이블 정보 2. 문제 보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 09:00부터 19:59까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 3. 요구사항 분석 및 SQL문 -- 조회 : 입양시간, 입양횟수 -- 그룹 : 시간대별 -- 정렬 : 시간대 오름차순 SELECT TO_CHAR(DATETIME, 'HH24') AS ADP_HOUR , COUNT(DATETIME) AS ADP_CNT FROM ANIMAL_OUTS GROUP BY TO_CHAR(DATETIME, 'HH24') HAVING TO_CHAR(DATETIME,..
파란코딩
Coding Blue