본문 바로가기

전체 글

(47)
BOJ 1911 흙길 보수하기 BOJ 백준 1911 흙길 보수하기 C++ JAVA https://www.acmicpc.net/problem/1911 알고리즘을 꾸준히 풀지 않으면 쉽게 풀릴 것 같은 문제조차 어렵게 느껴진다. 꾸준히 풀자! 문제를 보고 처음 든 생각은 딱히 다른 알고리즘 개념이 있다기보다는 평범한 그리디 문제 같았다. 비슷한 유형으로 [ 1913 회의실 배정 https://www.acmicpc.net/problem/1931 ] 이 생각났음 문제를 풀고 난 후 분류를 봤는데 "스위핑" 알고리즘이라는 것이었다. ( 라이님 블로그 참고.. blog.naver.com/kks227/220907708368 ) sweeping에서 유추 가능하듯 전체를 한 번 스캔하면서 작업하는 알고리즘! 생각의 흐름 1) (회의실 배정과 같이) ..
Live Study 14주차 : 제네릭 목표 자바의 제네릭에 대해 학습하기 학습할 것 제네릭 사용법 제네릭 주요 개념(바운디드 타입, 와일드 카드) 제네릭 메소드 만들기 Erasure 제네릭(Generic)이란? 일반화한다! 그리고 그 일반화의 대상은 자료형이다. 자바의 제네릭은 명료하며 쉽게 익숙해질 수 있다. (라고 책에서 말했다) 제네릭은 어떠한 자료형을 기반으로도 인스턴스의 생성이 가능하도록 자료형에 일반적인 클래스를 정의하는 문법이다. 제네릭 사용법 우선 결론부터 살펴보자면, 실행과정에서 발견되는 오류를 컴파일 과정에서 발견되도록 코드를 작성하는 것은 매우 의미 있는 일이다! 예를 들어보자! 사과를 담는 AppleBox 클래스와 오렌지를 담는 OrangeBox 클래스를 정의하였다. (Apple, Orange 클래스는 정의 되었다고 가..
Live Study 13주차 : I/O 목표 자바의 Input과 Output에 대해 학습하기 학습할 것 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream과 OutputStream Byte와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 I/O (입출력) 프로그램에서 사용된 데이터를 영구적으로 저장하여 후에 다른 프로그램에서 사용하기 위해 필요한 기능 즉, 프로그램에서 생성된 데이터를 파일 형태로 컴퓨터의 하드 디스크나 보조 기억 장치에 저장한 다음 다른 프로그램에서 이 데이터를 사용하는 기능. 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O Stream 스트림이란? 순서가..
Live Study 12주차 : 애노테이션 목표 자바의 애노테이션에 대해 학습하기 학습할 것 애노테이션 정의하는 방법 @Retention @Target @Documented 애노테이션 프로세서 과제 마감 2021.02.06 1PM Annotation이란? 주석. 메타 데이터(데이터에 관한 데이터)의 한 형태 프로그램에 대한 데이터 제공 코드에 직접적인 영향을 주지 않음 애노테이션 정의하는 방법 이것은 가장 간단한 형태의 애노테이션이다. @Entity ' @ ' 는 컴파일러에게 이다음에 오는 것이 주석임을 알린다. @Override void myJavaStudyMethod() { ... } 애노테이션은 이름(name)이 있을 수도, 없을 수도 있다. 그리고 그 요소에 대한 값이 있다. // 이름이 있는 경우 @Author( name = "white..
Live Study 9주차 : 예외 처리 목표 자바의 예외 처리에 대해 학습하기 학습할 것 자바에서 예외 처리 방법(try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 ->최상위throwable -> 그 밑에 exception, error Exception과 Error의 차이는? RumtimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 예외란? 컴파일 시 발생하는 문법적인 에러가 아니라, 프로그램 실행 도중 발생하는 예기치 않은 문제 정수를 0으로 나누는 경우 배열의 첨자가 음수값을 가지는 경우 배열의 첨자가 배열의 크기를 벗어나는 경우 자바에서 예외 처리 방법(try, catch, throw, throws, finally) try~catch 자바에서는 예외처리를 위해 t..
Live Study 8주차 : 인터페이스 목표 자바의 인터페이스에 대해 학습하기 학습할 것 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 추상 클래스 : 추상 메소드(메소드 선언만 있는)외에 멤버 변수, 일반 메소드를 가질 수 있음 인터페이스 : 추상 메소드와 상수만을 가지는 추상 클래스 -> 다중 상속을 흉내 낼 수 있음 인터페이스 정의하는 방법 interface Man { // 인터페이스 선언 public long ONE_SECOND = 1000; // 상수 선언, 반드시 초기화 public long ONE_MINUTE ..
Live Study 7주차 : 패키지 목표 자바의 패키지에 대해 학습하기 학습할 것 package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 과제 마감 2021.01.02 1PM package 키워드 패키지란? 기능이 유사한 클래스들을 모아 하나로 표현한 것. 사용자가 작성한 클래스들을 하나의 패키지로 구성할 수 있으며, 한 패키지 내에서는 모든 클래스가 유일한 이름을 가져야 한다. 그러나 패키지가 다를 경우 동일한 이름의 사용이 가능하다. 사용자는 개발한 클래스들을 하나의 패키지로 만들어 사용할 수 있다. 패키지의 클래스를 만들기 위해서는 클래스 생성 시 첫 번째 라인에 package를 선언해야 한다. 패키지 선언하기 package '패키지 명'; * 클래스를 특정 패키지로 생성하는..
Live Study 6주차 : 상속 목표 자바의 상속에 대해 학습하기 학습할 것 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 과제 마감 2020.12.26 1PM 자바 상속의 특징 객체 지향에서 상속을 통해 얻을 수 있는 효과 3가지 1) 클래스 검색이 쉬움 상속을 통하여 클래스를 체계화할 수 있다. 다수 클래스의 공통적인 성질을 한 개의 상위 클래스에 표현함으로써 상위 클래스에 하위 클래스를 분류하는 관점이 표현될 수 있다. 또한 하위 클래스에는 상위 클래스에 대하여 추가된 속성과 기능이 표현되기 때문에 하위 클래스의 특징을 이해하기 쉽다. 이러한 효과는 체계적인 클래스 계층 구조를 제공하기 때문에 클래스를 ..