분류 전체보기

데이터베이스

[데이터베이스] DB전체 요약(조르디 CS강의)

Data Base DBMS(Data Base Management System) RDB, NoSQL RDB(관계형 데이터베이스): MySQL, Oracle, Ms-SQL, SQLite NoSQL(Not Only SQL): Redis, Hbase, mongo DB DELETE vs TRUNCATE vs DROP DELETE: 데이터(ROW)만 삭제(따라서 1,2 삭제후 새로운 데이터 넣을때 다시 1,2id 지급) TRUNCATE: ROW도 삭제하는데 메타데이터도 삭제(1,2삭제후 데이터 넣을때 3,4id 지급) DROP: 완전히 테이블 자체를 삭제 DML, DDL, DCL 차이도 알아두면 좋음 DML(Data Manipulation Language): CRUD(Create, Read, Update, Dele..

알고리즘/자바

[백준 알고리즘] 1520번 자바(Java) 내리막길

문제 여행을 떠난 세준이는 지도를 하나 구하였다. 이 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 한 칸은 한 지점을 나타내는데 각 칸에는 그 지점의 높이가 쓰여 있으며, 각 지점 사이의 이동은 지도에서 상하좌우 이웃한 곳끼리만 가능하다. 현재 제일 왼쪽 위 칸이 나타내는 지점에 있는 세준이는 제일 오른쪽 아래 칸이 나타내는 지점으로 가려고 한다. 그런데 가능한 힘을 적게 들이고 싶어 항상 높이가 더 낮은 지점으로만 이동하여 목표 지점까지 가고자 한다. 위와 같은 지도에서는 다음과 같은 세 가지 경로가 가능하다. 지도가 주어질 때 이와 같이 제일 왼쪽 위 지점에서 출발하여 제일 오른쪽 아래 지점까지 항상 내리막길로만 이동하는 경로의 개수를 구하는 프로그램을 작성하시오. 입력 첫..

알고리즘/자바

[백준 알고리즘] 11054번 자바(Java) 가장 긴 바이토닉 부분 수열

문제 수열 S가 어떤 수 Sk를 기준으로 S1 Sk+1 > ... SN-1 > SN을 만족한다면, 그 수열을 바이토닉 수열이라고 한다. 예를 들어, {10, 20, 30, 25, 20}과 {10, 20, 30, 40}, {50, 40, 25, 10} 은 바이토닉 수열이지만, {1, 2, 3, 2, 1, 2, 3, 2, 1}과 {10, 20, 30, 40, 20, 30} 은 바이토닉 수열이 아니다. 수열 A가 주어졌을 때, 그 수열의 부분 수열 중 바이토닉 수열이면서 가장 긴 수열의 길이를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ ..

알고리즘/자바

[백준 알고리즘] 2493번 자바(Java) 탑

문제 KOI 통신연구소는 레이저를 이용한 새로운 비밀 통신 시스템 개발을 위한 실험을 하고 있다. 실험을 위하여 일직선 위에 N개의 높이가 서로 다른 탑을 수평 직선의 왼쪽부터 오른쪽 방향으로 차례로 세우고, 각 탑의 꼭대기에 레이저 송신기를 설치하였다. 모든 탑의 레이저 송신기는 레이저 신호를 지표면과 평행하게 수평 직선의 왼쪽 방향으로 발사하고, 탑의 기둥 모두에는 레이저 신호를 수신하는 장치가 설치되어 있다. 하나의 탑에서 발사된 레이저 신호는 가장 먼저 만나는 단 하나의 탑에서만 수신이 가능하다. 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 개의 탑이 수평 직선에 일렬로 서 있고, 모든 탑에서는 주어진 탑 순서의 반대 방향(왼쪽 방향)으로 동시에 레이저 신호를 발사한다고 하자. 그러면, 높이..

알고리즘/자바

[백준 알고리즘] 14891번 자바(Java) 톱니바퀴

문제 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴가 1번, 그 오른쪽은 2번, 그 오른쪽은 3번, 가장 오른쪽 톱니바퀴는 4번이다. 이때, 톱니바퀴를 총 K번 회전시키려고 한다. 톱니바퀴의 회전은 한 칸을 기준으로 한다. 회전은 시계 방향과 반시계 방향이 있고, 아래 그림과 같이 회전한다. 톱니바퀴를 회전시키려면, 회전시킬 톱니바퀴와 회전시킬 방향을 결정해야 한다. 톱니바퀴가 회전할 때, 서로 맞닿은 극에 따라서 옆에 있는 톱니바퀴를 회전시킬 수도 있고, 회전시키지 않을 수도 있다. 톱니바퀴 A를 회전할 때, 그 옆에 있는 톱니바퀴 B와 서로 맞닿은 톱니..

자바(Java)

[자바] 자바 I/O

I/O 입출력 I/O는 input, output의 약자로 입출력 통칭하는 용어로 I/O라고 부르며 읽을때는 Input, 파일쓰거나 외부전송은 Output이다(JVM기준) 한마디로 프로그램간의 데이터를 주고 받는것을 말한다 키보드로부터 데이터를 입력받는것 print문을 이용해 화면에 출력하는것 스트림(Stream)/ 버퍼(Buffer)/ 채널(Channel) 기반의 I/O Stream Stream 데이터를 운반하는데 사용되는 연결통로 자료의 입출력을 도와주는 중간 매개체 역할을 한다. 응용 프로그램과 입출력 장치를 연결하는 소프트웨어 모듈 단방향: 입력, 출력 다안하고 하나만 가능하다(따라서 동시에 수행할려면 스트림이 2개 필요하다), 추가로 도달하는것은 큐를 생각하면 됨(선입선출) Buffer 데이터를 ..

알고리즘/자바

[백준 알고리즘] 3190번 자바(Java) 뱀

문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임은 NxN 정사각 보드위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있다. 보드의 상하좌우 끝에 벽이 있다. 게임이 시작할때 뱀은 맨위 맨좌측에 위치하고 뱀의 길이는 1 이다. 뱀은 처음에 오른쪽을 향한다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따른다. 먼저 뱀은 몸길이를 늘려 머리를 다음칸에 위치시킨다. 만약 벽이나 자기자신의 몸과 부딪히면 게임이 끝난다. 만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않는다. 만약 이동한 칸에 사과가 없다면, 몸길이를 줄여서 꼬..

디자인 패턴

[디자인패턴]빌더 패턴

빌더패턴 집을 생각해보면 각각의 집들은 다른 요소들이 있을 수 있다.(주차장, 창문, 수영장, 정원) 근데 이런 집을 다 따로 만들자니 종류가 너무 많아지고 이거를 파라미터값으로 다 넣어주자니 메서드 하나에 파라미터값이 많아진다. 해결법: 빌더 패턴은 복잡한 객체들을 단계별로 생성할 수 있다. 그리고 빌더는 제품이 생성되는 동안 다른 객체들이 제품에 접근 하는 것을 허용하지 않는다. 자세한 내용은 아래 실습 예제를 보여주면서 설명하겠다. 실습 예제 Builder패턴 적용 이전 객체에 값을 할당하는 방법 생성자 생성 Setter 생성 Task클래스와 Client 클래스 코드 Task import java.util.Date; public class Task{ //항상 외부에서 사용못하게 하는 변수는 priv..

알고리즘/자바

[백준 알고리즘] 11003번 자바(Java) 최솟값 찾기

문제N개의 수 A1, A2, ..., AN과 L이 주어진다.Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. 입력첫째 줄에 N과 L이 주어진다. (1 ≤ L ≤ N ≤ 5,000,000)둘째 줄에는 N개의 수 Ai가 주어진다. (-109 ≤ Ai ≤ 109)출력첫째 줄에 Di를 공백으로 구분하여 순서대로 출력한다. 풀이처음에는 힙을 생각했었다. 최솟값을 O(log N)만에 찾을 수 있기때문이다.그래서 이제 힙에 값을 넣고 추후에 i-L 위치가 되면 그 값을 찾아내서 힙에서 제외시킬려고 했다.문제는 여기서 발생한다. 힙의 최솟값 접근은 O(log N)이지만 특정 값 찾는 시간복잡도는 무려  O..

자바(Java)

[자바] 자바 어노테이션

어노테이션 어노테이션이란? 어노테이션은 자바 1.5부터 추가된 요소로 사전적 의미로는 주석을 의미한다. 하지만 자바에서는 단순 주석이 아닌 클래스에 특수한 의미를 부여하거나 기능을 주입하기 위한 메타데이터라고 볼 수 있다. 어노테이션은 인터페이스 일종으로 @를 사용하여 선언한다. 전에 JUNIT 테스트시 사용하는 @Test도 어노테이션이다. 단지 이게 테스트해야한다는 것을 프로그램에게 알리는 역할을 할 뿐, 메서드가 포함된 프로그램에는 아무런 영향을 미치지 않는다. 어노테이션의 용도 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공 인텔리제이 같은 소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보를 제공 런타임 시 특정기능을 실행하도록 정보를 제공 어노테이션의 종류 Buil..

Ash_jisu
'분류 전체보기' 카테고리의 글 목록 (8 Page)