반응형

분류 전체보기 118

[프로그래머스]두 개 뽑아서 더하기[JAVA, 자바]

문제 설명 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 풀이 방법 문제를 잘 읽어보면 중복 없는 오름차순의 배열을 return 하라는 문제이다. 2중 반복문을 통해 모든 수의 합을 더 해줌 -> 중복 없이 Arraylist에 add 해줌 -> 배열 생성 후 Arraylist 원소들을 넣어줌 -> 오름차순 정렬 초기 배열의 크기를 설정해주는 것이 어려움으로 Arraylist를 사용했다. 알아야되는 개념 Arraylist 정렬(Sort) 2중 반복문 import java.util.ArrayList; import java.util.Array..

상속(inheritance) [JAVA]

상속이란? 객체 지향의 상속(inheritance)은 한 클래스가 기존 클래스의 속성이나 기능(메소드)을 재사용(reuse)하면서 자신의 새로운 속성이나 기능을 추가해서 확장(extend)하거나 기존 기능을 정제하고 개선(refine)하는 구현 방식 부모 클래스 기존 클래스 자식 클래스 확장되거나 개선된 클래스 자식 클래스는 부모 클래스의 모든 속성과 함수들을 상속 받지만, 부모 클래스에서 자식 클래스가 접근할 수 있는 속성과 메소드를 지정 가능 부모 클래스는 한 개 이상의 자식 클래스와 관계를 맺는 계층 구조로 표현 가능 공통 부분을 부모 클래스에, 서로 다른 부분은 자식 클래스에 구현 가능 class Child extends Parent { } 상속은 클래스를 만드는 것과 비슷하게, 코드의 재사용성을..

CS/OOP 2021.03.15

인터페이스(Interface)와 추상 클래스(abstract class) [JAVA]

인터페이스(interface) 사전적 정의 "서로 다른 두 시스템, 장치, 소프트웨어 따위를 서로 이어 주는 부분. 또는 그런 접속 장치" - 표준국어대사전 자바의 인터페이스 함수를 미리 선언하고 구현은 비워놓은 추상 메소드 함수 선언을 지켜서 구현하라는 약속 인터페이스로 선언된 함수들은 다른 클래스에서 구현됨 인터페이스의 장점 두 가지 이미 구현된 것들을 교체하기 쉬움 다중 상속을 해야 하는 경우에 사용 가능 class 클래스이름 implement 인터페이스 이름 { // 인터페이스에서 선언된 함수 구현 코드 // 나머지 코드 } 인터페이스는 상속 관계의 부모 클래스와 유사하게 사용 가능 인터페이스를 구현하는 클래스 객체도 인터페이스 변수에 저장하거나 인자로 전달 가능 인터페이스는 부모 클래스인 것처럼..

CS/OOP 2021.03.15

클래스들의 관계[JAVA]

연관 (association) 두 클래스 사이가 연결됨 클래스 간에 참조가 사용됨 클래스의 멤버 변수로 다른 클래스가 저장됨 의존(dependency) 연관과 비슷하지만 참조를 사용하는 시기가 짧음 메소드 내부에서 다른 클래스 객체를 생성해서 사용 메소드에 인자로 다른 클래스 객체를 전달 받아 함수 내부에서 다른 클래스의 메소드 호출 메소드에서 다른 클래스 객체를 반환하고, 반환 받은 쪽에서 메소드를 호출 집합(aggregation) 두 개는 비슷하지만 전체와 부분의 생명 주기가 일치하는지로 구분 집합은 전체와 부분의 생명 주기가 다름 생성자나 메소드에 입력으로 다른 객체를 전달받아서 멤버 변수에 저장한다면 집합으로 보면 됨 구성(composition) 전체와 부분의 생명 주기가 일치 출처 - 상명대 객..

CS/OOP 2021.03.06

클래스(Class) [JAVA]

클래스 찾기 자바는 단순한 명령문을 실행하려고 해도 무조건 "클래스"를 구현해야 함 좋은 클래스란? 다른 프로그램에서도 사용할 수 있음 확장이 쉬움 고쳐 쓰기 쉬움 일관성과 결합성을 고려해야함 일관성: 클래스는 목적이 있어야 하고 그 목적에 부합해야 함 결합성: 클래스는 다른 클래스에 대한 의존이 적어야 함 일관성 클래스를 구성하는 요소들이 뭉쳐있는 정도 및 연관성을 의미 클래스의 목적을 이룰 수 있도록 관련된 데이터와 그 데이터를 처리하는 함수들만으로 구성 클래스가 어떤 자료(데이터)를 가지곻 있어야 하는지 먼저 생각 그럴 후에 그 자료를 처리하는 코드를 멤버 함수로 구현 결합성 결합은 클래스가 서로 연결되면서 발생 클래스 설계할 때에는 서로간의 결합성이 낮아야함 (loosely coupled) or ..

CS/OOP 2021.02.24

[OS]운영체제 구조 (Operating System Structure)

Operating System Structure 운영체제와 같은 크고 복잡한 소프트웨어는 잘 동작하고, 쉽게 변경할 수 있도록 구조를 만드는 것이 매우 중요 운영체제를 구성하는 구조들은 여러 가지가 있다. 모놀로식 커널 (Monolithic kernel) 단일형 커널 cpu스케쥴링, 메모리 관리 등 운영체제의 일반적인 기능들이 전부 커널이라는 하나의 프로그램에 담겨있는 구조 (전혀 계층적이지 않음) 계층적인 구조보다 성능적인 부분에서는 우위를 보이나, 구현과 수정이 어렵다. 장점 : 성능이 더 좋다. 단점 : 수정과 구현이 어려움 (유지보수가 어렵다) 계층적인 접근 (Layered Apporach) 계층적인 구조라면 커널 자체도 여러개의 계층으로 이루어져있어야 함. 전형적인 하나의 계층은 자신의 자료구조..

CS/OS 2021.02.19

[OS]캐싱(Caching) 이란?

캐싱의 정의 저속의 저장장치에 저장되어있는 데이터에 대해 그 일부의 복사본을 그보다 빠른 저장장치에 보관에서 컴퓨터 동작의 성능을 향상하는 기법 (copying information into faster storage system; main memory can be viewed as a cache for secondary storage) (메모리 계층간의 캐싱 가능) 컴퓨터 시스템의 여러 부분에서 동작하는 성능 향상 기법 주어진 하드웨어에서 최대한 빨리 데이터에 접근(캐싱의 목적) 캐싱의 원리 저속 저장장치에 담긴 원본 데이터를 고속 저장장치에 임시로 복사해놓는다. 이렇게 되면 CPU는 같은 데이터를 고속 저장장치에서 데이터를 가져와서 성능을 향상 시킬 수 있다. 단, 고속 저장장치는 저속 저장장치보다 ..

CS/OS 2021.02.15

운영체제 (OS)(Operating System) 란?

OS 정의 (Operating System Definition) OS is a resource allocator 시스템 관점에서 OS는 자원할당자라고 볼 수 있다. (Manages all resoures) 제한된 자원에 대해 동시에 요청이 들어오면 효율적으로 분배해주는 역할을 한다. (Decides between conflicting requests for efficient and fair resource use) 자원 할당은 매우 중요한 이슈이다. OS is a control program 프로그램의 동작을 통제하는 제어프로그램이라고 할 수 있다.(Controls execution of programs to prevent errors and improper use of the computer) 프로그램..

CS/OS 2021.02.12

로컬에서 Norminette 설치

로컬에서 Norminette 설치 1. 아래 링크에 접속해서 가이드를 따라하면 된다. (자신의 OS버전에 맞게 설치하자) GitHub - hivehelsinki/norminette-client: norminette at home norminette at home. Contribute to hivehelsinki/norminette-client development by creating an account on GitHub. github.com git clone https://github.com/hivehelsinki/norminette-client.git ~/.norminette/ cd ~/.norminette/ bundle # it will ask for your password. # Create an..

반응형