오블완

[C++] 람다(lambda) 표현식
·
Language/C & C++
람다 표현식 익명의 함수를 만드는 기능으로 C++11에서 도입되었다. 코드 내에서 간결하게 함수를 정의하고 사용할 수 있도록 도와준다. 특히 std::function이나 STL의 다양한 알고리즘 함수에 인라인으로 사용할 때 유용하다. 람다 표현식 혹은 람다식이라 한다.기본 문법은 아래와 같다.[capture](parameter) -> return_type { body };캡처 리스트에는 람다식에 사용하고자 하는 함수 바깥 변수 목록이고, 매개변수 리스트, 리턴타입, 함수 바디는 기본적인 함수와 동일하게 사용하면 된다. 이때 -> return_type은 생략 가능하다.람다식을 사용할 때 역시 일반적인 함수와 마찬가지로 소괄호를 이용하여 매개변수를 전달해주면 된다.캡처 리스트는 [=]을 통해 모든 외부 변수..
[C++] auto 키워드
·
Language/C & C++
auto C++11부터 선언 초기화 식에서 추론되는 형식으로 변수를 선언하는 역할을 한다. C++11 이전까지는 스택에 할당되는 지역 변수를 선언하는 키워드였다. 따라서 C++ 버전에 따라 달리 동작할 수 있으니 주의해야 한다.복잡한 변수 선언을 간소하게 하고, 이름이 긴 자료형이나 헷갈릴 수 있는 자료형을 선언할 때 실수를 줄일 수 있다는 장점이 있다.예를 들어 아래와 같은 코드가 있다고 가정하자.#include using namespace std;class ClassNameThatIsUnnecessarilyLong { ...}int main() { ClassNameThatIsUnnecessarilyLong temp; ClassNameThatIsUnnecessarilyLong* ptem..
[Linear Algebra] 좌표벡터(coordinates vector)와 전이행렬(transition matrix)
·
Mathematics/Linear Algebra
좌표벡터 (Coordinates Vector) $ \mathbb{R}^n $ 의 어떤 점 $ P = \{ x_2, x_2, \cdots, x_n \} $ 에 대한 벡터 $ \mathbf{x} = \overrightarrow{OP} $ 는 표준기저 $ S = \{ \mathbf{e_1}, \mathbf{e_2}, \cdots, \mathbf{e_n} \} $ 을 이용하여 다음과 같이 나타낼 수 있고 이는 유일하다.$$ \mathbf{x} = x_1 \mathbf{e_1} + x_2 \mathbf{e_2} + \cdots + x_n \mathbf{e_n} $$이때 $ x_1, x_2, \cdots, x_n $ 은 점 $ P $ 의 좌표이므로 벡터 $ \mathbf{x} = \{ x_1, x_2, \cdots..
[Baekjoon 11722] 가장 긴 감소하는 부분 수열 | Python
·
Online Judge/Baekjoon
https://www.acmicpc.net/problem/11722문제 주어진 수열의 부분 수열 중 가장 긴 감소하는 수열을 찾는 문제이다. 풀이 각 인덱스에서 감소하는 수열의 최대 길이를 확인하고 그 중 가장 큰 값을 출력하면 된다.어떤 인덱스를 i라 하면 에서 감소하는 수열의 최대 길이는 i보다 앞 인덱스의 수 중 num[i]보다 큰 수를 찾고, 그 중 그 인덱스의 감소하는 수열의 최대 길이를 확인하여 1을 더하면 i에서의 감소하는 수열의 최대 길이가 된다.예제로 주어진 아래 수열을 확인해보자.10 30 10 20 20 1010은 자신보다 앞에 수가 없으므로 0에서의 감소하는 수열의 최대 길이는 1이다. 30 역시 자신보다 앞에 수 중 자신보다 큰 수가 없으므로 1이다. 10은 앞 수 중에 30이 자..
[Data Structure] 트리(tree)와 이진 트리(binary tree)
·
Computer Science/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 를 찾은 다음 톱니바퀴를 눌러 설정..
애스터로이드
'오블완' 태그의 글 목록 (2 Page)