All Posts

[Java] 접근 지정자(access modifier)
·
Language/Java
접근 지정자 접근 지정자는 말 그대로 접근을 지정하는 키워드이다. 객체지향에서 중요한 은닉을 달성하기 위해 사용된다. 접근 지정자가 아니라 접근 제어자, 접근 제한자라고도 하며, 이를 통해 접근 가능한 범위를  각각 지정할 수 있다.접근 지정자의 종류는 아래와 같다.public: 모든 다른 클래스에 허용한다.protected: 상속받은 클래스와 같은 패키지에 소속된 클래스에만 허용한다.default: 기본 제한자로 접근 지정자를 설정하지 않으면 default가 되며, 같은 패키지에 소속된 클래스에만 허용한다.private: 해당 클래스에만 허용한다.표로 보면 다음과 같이 허용된다.접근 지정자해당 클래스 내부같은 패키지자식 클래스모든 클래스publicOOOOprotectedOOOXdefaultOOXXpri..
[Data Structure] 트리(tree)와 이진 트리(binary tree)
·
Data Structure & Algorithm/Data Structure
트리  트리는 일대다로 연결된 비선형자료구조로 계층적 자료구조이다. 노드로 구성되어 있으며 다음과 같은 용어를 사용한다.루트 노드(root node): 최상위 노드, 즉 부모가 없는 노드로 트리의 시작점부모 노드(parent node): 해당 노드의 위(루트 노드 방향)로 연결된 노드자식 노드(child node): 해당 노도의 아래(루트 노드 반대 방향)로 연결된 노드형제 노드(siblings node): 같은 부모 노드를 갖는 노드들조상 노드(ancestor node): 해당 노드 위로 연결된 모든 노드후손 노드(descendent node): 해당 노드 아래로 연결된 모든 노드단말 노드(terminal node): 자식이 없는 노드, 리프 노드(leaf node)라 부르기도 함간선(edge): 노드..
[Baekjoon 27907] The primes contain arbitrarily long arithmetic progressions | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/27907문제 임의 길이의 소수 등차수열을 출력하는 문제이다. 풀이 여러 고민을 하면서 다양한 풀이방법을 시도했지만, 풀리지 않았는데, 풀이 방법을 찾아보니 공차에 대한 조건이 없으므로 그냥 임의의 소수를 주어진 길이만큼 출력하는 문제였다.즉 일반적인 답이 없다는 것을 빨리 알아차리고, 문제의 허점을 찾아야 하는 문제였다. 코드 print(*([2 for _ in range(int(input()))]))
[Baekjoon 23886] 알프수 1 | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/23886문제 주어진 수가 조건에 맞는 수인지 확인하는 문제이다.조건은 연속으로 오르거나 내릴 때 각이 같아야 하고, 시작은 증가, 끝은 감소이다. 풀이 먼저 주어진 수를 리스트 컴프리헨션을 이용해 리스트로 바꿔준다. 그냥 문자열로 처리하거나 숫자로 입력받고, 자릿수로 분해해주어도 되겠지만, 이 방법이 가장 편할 듯 하다.다른 조건을 검사하기 전에 시작과 끝의 각도를 확인하고, 시작이 감소이거나 끝이 증가이면 알프수가 아니므로 처리한다.그 후 각각의 각을 확인하면서 조건에 맞는지 확인한다.이전 각이 음수면서 지금 각도 음수인데 두 각이 다르면 알프수가 아니고, 이전 각이 양수면서 지금 각도 양수인데 두 각이 다르면 알프수가 아니다. 코드 num =..
[Linear Algebra] 행공간(row space)과 열공간(column space)
·
Mathematics/Linear Algebra
행공간과 열공간 $ A $ 를 다음과 같은 $ m \times n $ 행렬이라 가정하자.$$ A = \begin{bmatrix} a_{11} & a_{12} & \cdots & a_{1n} \\ a_{21} & a_{22} & \cdots & a_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & \cdots & a_{mn} \end{bmatrix} $$이때 $ m $ 개의 벡터 $ \mathbf{r_i} $ $ (i = 1, 2, \cdots, m ) $ 와 $ n $ 개의 벡터 $ \mathbf{c_j} $ $ ( j = 1, 2, \cdots, n) $ 을 다음과 같이 가정하자.$$ \mathbf{r_1} = \begin{bmatrix} ..
[VS Code] Code Runner 이용 시 C/C++ 한글 깨짐
·
IDE & Editor/Visual Studio Code
한글 깨짐 VS Code 에서 코딩하면 기본적으로 UTF-8로 인코딩된다. 그런데 Code Runner 를 이용하면 터미널을 이용해서 코드를 컴파일하고 출력하는데, 이때는 윈도우 설정인 EUC-KR(혹은 CP949)로 인코딩된다. 따라서 한글이 깨지게 된다.이를 해결하기 위해서 터미널에 다음 명령어를 입력하여 UTF-8로 인코딩해주어야 한다. 물론 아예 코드를 EUC-KR로 작성하는 것도 방법일 수 있지만, 이렇게 작성된 코드는 깃허브에 올리거나 할 때 깨지기 때문에 윈도우 터미널 설정을 건드는 것이 좋다.chcp 65001이제 이 입력어를 Code Runner 를 이용할 때 마다 입력되도록 하면 될 것 같다.VS Code 의 좌측 확장을 클릭하고 Code Runner 를 찾은 다음 톱니바퀴를 눌러 설정..
[Linear Algebra] 영공간(null space)와 영공간의 차원(nullity)
·
Mathematics/Linear Algebra
$ A \mathbf{x} = \mathbf{0} $ 의 해공간 $ A $ 를 $ m \times n $ 행렬이라 할 때 $ A \mathbf{x} = 0 $ 이 동차연립일차방정식이라 가정하자.이 $ A \mathbf{x} = \mathbf{0} $ 의 확대행렬의 기약 행 사다리꼴이 있을 때 기약 행 사다리꼴은 첫 행부터 $ r $ 개의 영이 아닌 행을 갖는다 하자.이때 확대행렬은 $ \left[ \begin{array}{c:c} A & 0 \end{array} \right] $, 기약행사다리꼴은 $ \left[ \begin{array}{c:c} B & 0 \end{array} \right] $ 으로 나타낸다.$ r = n $ 이면 $ A \mathbf{x} = \mathbf{0} $ 의 해는 $ \ma..
[Discrete Mathematics] 경우의 수 및 순열과 조합
·
Mathematics/Discrete Mathematics
경우의 수 곱셈의 원리어떤 시행이 연속된 $ t $ 단계로 구성되고, 각 단계가 $ n_1, n_2, \cdots, n_t $ 가지 방법으로 이뤄져 있을 때 서로 다른 시행의 가능한 모든 경우의 수는 다음과 같다.$$ n_1 \times n_2 \times \cdots \times n_t $$요약하면 객체들이 연속적인 단계로 구성되면 곱셈 원리를 사용한다. 덧셈의 원리$ X_1, X_2, \cdots , X_t $ 가 집합이고 $ i $ 번째 집합 $ X_i $ 가 $ n_i $ 개의 원소를 가지고 있다 가정하자. 만약 $ \{ X_1, X_2, \cdots, X_t \} $ 가 서로소, 즉 $ i \neq j $ 일 때 $ X_i \cap X_j = \emptyset $ 이라 할 때 $ X_1 $ 또는..
[Linear Algebra] 기저(basis)와 차원(dimension)
·
Mathematics/Linear Algebra
기저 (Basis) $ S = \{ \mathbf{x_1}, \mathbf{x_2}, \cdots, \mathbf{x_m} \} \subset V $ 가 존재하고 $ V $ 가 벡터공간일 때 $ S $ 가 일차독립이고, $ S $ 가 $ V $ 를 생성한다면 $ S $ 를 $ V $ 의 기저라 한다. 또한 $ S $ 가 $ V $ 의 기저이면 임의의 벡터 $ \mathbf{x}  \in V $ 를 $ S $ 의 벡터들의 일차결합으로 유일하게 나타낼 수 있다.유일하게 나타낼 수 있다는 증명은 다음과 같다. $ \mathbf{x}  \in V $ 라 할 때 $ \left = V $ 이므로, 즉 $ S $ 의 벡터들의 일차결합으로 $ \mathbf{x} $ 를 나타낼 수 있으므로 $ \mathbf{x} = h..
[Java] 클래스(class)와 객체(object) 선언
·
Language/Java
클래스와 객체 선언 및 접근 클래스는 객체를 생성하기 위해 정의된 틀로 클래스 내에는 변수와 메소드가 존재한다. 메소드는 다른 언어에서는 함수라 불린다.객체는 클래스를 통해 생성된 것으로 클래스가 선언한 변수와 메소드를 사용할 수 있다. 이를 인스턴스(instance)라고도 부르고, 때문에 객체를 만드는 과정을 인스턴스화(instantiation)이라 부르며,따라서 객체가 가지고 있는 변수를 인스턴스 변수, 메소드를 인스턴스 메소드라 부르기도 한다. 하나의 클래스를 통해 여러 객체가 생성 가능하며, 이때 객체들은 각각의 인스턴스 변수를 가진다. 즉 클래스가 설계도라면 객체는 설계도로 만들어진 것이다.클래스는 class 키워드를 통해 만들 수 있다. 예를 들어 아래와 같이 사람이라는 클래스를 만들어보자.p..
애스터로이드
'분류 전체보기' 카테고리의 글 목록 (8 Page)