java8 데이터 은닉(Encapsulation), 다형성(Polymorphism), Singleton 1. 데이터 은닉 - 데이터를 보호하기 위해서 사용(마음대로 변경 X) - 변수는 private로 접근 막기 - getter, setter를 사용하여 변수 접근(public method) class UnbelievableUserInfo { // 데이터 은닉 private String name = "홍길동"; private int account = 10000; public void setName(String name) { // 데이터 보호 if (name != null) { this.name = name; } else { System.out.println("잘못된 이름 입니다."); } } public String getName() { return this.name; } public void setAcco.. 2024. 1. 18. 투 포인터 1. 투포인터 - 2개의 포인터를 가진 알고리즘 - 시간복잡도 O(N) 2. 알고리즘 1) 시작, 끝 포인터 초기화 2) 투 포인터 이동 3. 슬라이딩 윈도우 - 투 포인터를 유지한 채 고정된 범위를 이동시키는 알고리즘(배열 크기 변화) - 시간 복잡도 O(N) 2024. 1. 16. 클래스, 객체, 메서드, 변수, 생성자 1. 객체지향 프로그래밍이란? - 객체 : 주체가 아닌 것, 주체가 활용하는 것 - 객체지향 프로그래밍 : 주변의 많은 것들을 객체화 해서 프로그래밍 하는 것 2. 객체지향 프로그래밍 장점 - 블록 형태의 모듈화된 프로그래밍(ex. 레고) - 신뢰성 높은 프로그래밍이 가능 - 추가/수정/삭제가 용이 - 재 사용성이 높다. 3. Class와 Object - 현실의 객체가 갖는 속성과 기능은 추상화되어 클래스에 정의된다. - 클래스는 구체화 되어 프로그램의 객체가 된다. - 설계도는 하나의 종류가 되고 설계도를 통해 나온 제품을 객체라고 부르며 주체가 사용 - 객체는 클래스를 데이터 타입으로 메모리에 생성되어 실제로 동장하는 것 4. 객체 생성 public class Person { // 객체의 속성, 데이.. 2024. 1. 16. 구간 합 1. 구간 합 - 합 배열을 이용하여 시간 복잡도를 더 줄이기 위해 사용하는 특수한 목적의 알고리즘 - 합 배열 : 기존의 배열을 전처리한 배열 - 합 배열을 사용하면 시간 복잡도를 O(N)에서 O(1)로 줄일 수 있다. - 합 배열 S를 만드는 공식 S[i] = S[i-1] + A[i] - A[2] ~ A[5] 구간 합을 배열로 구하는 과정 S[5] = A[0] + A[1] + A[2] + A[3] + A[4] + A[5]; S[1] = A[0] + A[1]; S[5] - S[1] = A[2] + A[3] + A[4] + A[5]; 2024. 1. 15. 이전 1 2 다음