본문 바로가기

Archived(CSE Programming)

(169)
프로그래머스_N으로 표현 https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 | 프로그래머스 programmers.co.kr 처음 해당 문제를 접했을 때는 DP로 풀려고 하였다. 그런데 DP로 생각해보려니 최적화 원리가 어떻게 적용될 수 있는지 이해가 잘 안되서 쉽지 않았다. 그러던 중 DFS로도 할 수 있지 않을까 생각하였고 다행히 터지지 않고 해결할 수 있었다. DFS로 접근법은 간단하다, 숫자에 대해 연산을 재귀적으로 수행하면서 목적값 number를 찾아가면 된다. 이 때 백트랙킹 조건으로 다음의 두 가지를 포함시켰다. 1) 숫자 사용 수가 8번이 넘어가는 경우 2) 현재까지 만들어둔 결과값 num이 0일 때는 굳이 곱하거나 나누는 경우 나누..
프로그래머스_2*n 타일링 https://programmers.co.kr/learn/courses/30/lessons/12900# 코딩테스트 연습 - 2 x n 타일링 | 프로그래머스 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 다음과 같이 2가지 방법이 있습니다. 타일을 가로로 배치 하는 경우 타일을 세로로 배치 하는 경우 예를들어서 n이 7인 직사각형은 다음과 같이 채울 수 있습니다. 직사각형의 가로의 길이 n이 매개변수로 주어질 때, 이 직사각형을 채우는 방법의 수를 return 하는 s programmers.co.kr 기본적인 DP 문제이다. Level 3의 카카오 추석 트래픽 문..
Chap 5-6. Database 권한(Privilege) 1. 권한의 정의 특정 사용자가 가지는 Oracle 서버에 연결, User와 DB Object를 생성, 삭제하는 특정 SQL 문을 실행할 수 있는 System 유형의 권한 기존 특정 DB Object에 대해 특별히 명세하는 접근만 할 수 있는 Object 유형의 권한 2-1. 시스템 권한(System Privileges) GRANT [system_privilege_name | role_name] TO [user_name | role_name | PUBLIC] [WITH ADMIN OPTION] REVOKE [system_privilege_name | role_name] FROM [user_name | role_name | PUBLIC] TO Public을 통해 모든 사용자들에게 권한을 한 번에 부여할 수..
Chap 5-4. DataBase 뷰(View) 1. 뷰(VIEW)의 정의 뷰(VIEW)는 사용자들에게 '특정 자료들을 가공하여 제공하기 위해 한 개 이상의 테이블들로부터 유도된 테이블'이다 물리적으로 실재하지는 않지만, 사용자들에게 실재하는 것처럼 제공되기에 가상 테이블이라고도 한다. 2. 뷰(VIEW)의 장단점 장점 데이터의 논리적 독립성을 제공한다 특정 쿼리 처리를 간단히 한다 접근 제어를 통한 자동 보안성을 제공한다 단점 독립적인 INDEX를 가질 수 없다 ALTER를 통해 뷰를 변경할 수 없다 뷰에 대한 삽입 삭제 읽기에 대한 제약이 따른다 3. 뷰(VIEW)의 특징 뷰 생성 SQL문 CREATE VIEW 뷰명(컬럼1,컬럼2,...) AS SELECT문; 뷰의 INSERT(삽입)문은 뷰의 조건에 상관 없이 수행되나, UPDATE(갱신), DE..
Java 깊은 복사와 얕은 복사 Java에서 객체를 복사하는 유형에는 깊은 복사와 얕은 복사 2가지가 있다. 깊은 복사의 경우 객체의 실체값을 복사하는 것이고, 얕은 복사는 객체의 참조값(주소값)을 복사하는 것이다. 그래서 얕은 복사는 객체 변수에 기존의 변수를 옮겨 담는 것이고 깊은 복사는 객체 Cloneable 인터페이스를 구현하여 Clone 메소드를 통해 객체의 실체를 반환한다. 이 때, 참조자료형의 경우에는 override한 clone 메소드내에서 따로 처리를 해줘야 한다. org.apache.http.client.utils의 CloneUtils 라이브러리를 활용한 Deep Copy // 복사가 될수있도록 설정 public class Family implements Cloneable{ String name; int age; bo..
Java 마커 인터페이스 Java의 마커 인터페이스는 다음과 같이 메소드와 상수를 포함하고 있지 않은 표시용 인터페이스를 뜻한다. public interface marker{ } 그럼, 이러한 마커 인터페이스는 왜 쓰는가? 정답은 간단하다. 해당 클래스 파일을 컴파일러와 JVM에게 특별한 방식으로 처리해야 함을 알릴 수 있다. 우리가 흔히 쓰는 Serializable, Cloneable과 같이 직렬화, 복제화를 함에 있어 특별한 방식으로 처리해야 함을 알린다. 참고로, 마커 어노테이션이라는 문법도 존재한다. @Retention(RetentionPolicy.RUNTIME) @interface Markable1{ } Class clazz = this.getClass(); if(clazz.isAnnotationPresent(Marka..
Java_메모리 구조 자바의 메모리 구조에 앞서 실제 자바가 어떤 식으로 동작되는지에 대한 이해가 필요하다. 우리가 java 파일을 작성하여 javac 컴파일러에 의해 컴파일 하면 .class의 바이트 코드를 생성한다. 이러한 바이트 코드를 Class Loader를 통해 JVM에 적재하고 Execution Engine에 의해 실행 중 메모리를 관리하고 Garbage Collector에 의해 Heap 영역에서 사용되지 않는 메모리를 해제하는 구조를 지닌다. 1. Class Loader .class의 바이트 코드를 엮어서 JVM의 Runtime Data area에 적재하는 역할을 한다. 2. Execution Engine .class의 바이트 코드들을 기계어로 번역하여 실행 단위의 명령어로 실행한다. (이 때, 명령어를 하나씩 ..
Java 예외처리 https://wikidocs.net/229 위키독스 온라인 책을 제작 공유하는 플랫폼 서비스 wikidocs.net 예외란 프로그래밍 상 문법적으로는 이상이 없으나 프로그램 실행 중에 발생하는 예기치 못한 사건으로 발생하는 에러를 뜻한다. 처리 문법은 try~catch~finally public class Test { public void shouldBeRun() { System.out.println("ok thanks."); } public static void main(String[] args) { Test test = new Test(); int c; try { c = 4 / 0; } catch (ArithmeticException e) { c = -1; } finally { test.should..