-
[백준 1422] 숫자의 신Baekjoon 2020. 4. 28. 00:41
문제 요약 입력으로 K개의 숫자가 주어진다. 이때 각 숫자의 범위는 1,000,000,000보다 작거나 같은 자연수이다. 이때 주어진 숫자들을 골라 앞, 뒤로 붙여서 만들 수 있는 숫자 중 가장 큰 숫자는 무엇인지 구하라. 단, 입력으로 주어진 K개의 숫자는 반드시 한 번씩 들어가야 하고, 여러 번 쓸 수 있다. 접근 과정 처음에 문제를 읽었을 때 문제 자체는 짧고 명료하기에 쉽게 이해했지만 구현에 대한 아이디어를 떠올리느라 매우 깊은 고민에 빠지게 됐다. 첫 번째로 든 생각 "그냥 큰 숫자만 앞에 가면 되는 거 아니야?" 반례 K=2일 때 1007, 7 이 주어졌다면 1007이 크다고 해서 1007+7 = 10077로 만든 건 정답이 될 수 없다. 7+1007을 하면 71007이 더 크기 때문이다. 해..
-
[JAVA] 객체지향 2카테고리 없음 2019. 1. 27. 17:31
1. 캡슐화(Encapsulation) 클래스 내에는 데이터 (변수)와 오퍼레이션(기능)이 있다. 캡슐화는 중요한 데이터나 복잡한 기능을 숨기고자 할 때 사용에 꼭 필요한 기능만을 공개하여 정의하는 기법을 말한다. 숨길때는 앞서 소개한 접근제한자(Modifier) 중 Private을 사용한다. 변수 혹은 메서드 앞에 private을 붙여주면 해당 변수or메서드는 소속된 클래스 내에서만 핸들링할 수 있다. 데이터를 private으로 선언하고 해당 데이터를 set/get 메소드를 통헤 접근, 제어하는 것이 보편적인 캡슐화 방법이다. 캡슐화 기법을 쓰면 필요한 기능만 공개되어 있기 때문에 사용이 편리해지고 코드의 유지보수를 용이하게 만든다. 2. 추상화(Abstraction) 프로젝트 클래스 설계 중 요구사항..
-
[JAVA] 객체지향 1카테고리 없음 2019. 1. 26. 22:52
객체지향의 가장 큰 특징이자 장점은 재사용성이다. 자바로 짜여진 프로그램은 기본적으로 객체(Object(코드에서는 Class))단위로 구성되며 이 객체들은 서로 관계성있는 구조를 가진다. 객체지향의 특징은 다음과 같다. 추상화(Abstraction)캡슐화(Encapsulation) 상속 (Inheritance)다형성 (Polymorphism) ★★★ 이러한 객체지향언어의 특징은 코드의 반복을 줄여줄 뿐만 아니라 가독성, 사용성, 유지보수 효율성,확장성이 좋아진다는 아주 큰 장점이 있다. 또한 객체 단위로 프로젝트 코드가 구성되기 때문에 분석,설계에도 용이하다. 자바로 어떤 프로젝트 프로그램을 설계하기 위해서는 상단의 4가지 개념은 반드시 숙지해야하며 디자인 패턴 개념을 기반으로 프로그래밍을 하면 작성된 ..
-
[JAVA] 자바 복습 시작카테고리 없음 2019. 1. 13. 17:53
객체지향은 프로젝트의 구조를 보는 눈과 마인드가 필요하다. 절차지향 마인드로 공부하는 알고리즘과는 달리구조를 보는 눈을 길러야 한다. 알고리즘을 짤 때는 대체적으로 탑다운 방식으로 코드를 읽어내려 가도 해당 코드가 어떤 퍼포먼스를 하는지 알 수 있는 반면에객체지향으로 짜여진 코드는 서로 다른 클래스와 클래스를 왔다 갔다하며 봐야한다.그렇기에 필연적으로 클래스 간의 관계, 변수 네이밍이 상당히 중요하다. 즉 코드의 동선이 알고리즘(절차지향)은 탑다운으로도 읽혀서 비교적 단순한 편이지만 객체지향은 클래스와 메소드 코드의 동선을 여기저기서 파악해야한다. 자바 복습 대분류 1.기본적으로 Syntax를 알아야하기 때문에 PL(Program Language) 2. 설계를 하거나 설계도를 이해하기 위한 객체지향 OO..