전체 글 143

[프로그래머스 Lv3]산 모양 타일링

문제 설명한 변의 길이가 1인 정삼각형 2n+1개를 이어붙여 윗변의 길이가 n, 아랫변의 길이가 n+1인 사다리꼴을 만들 수 있습니다. 이때 사다리꼴의 윗변과 변을 공유하는 n개의 정삼각형 중 일부의 위쪽에 같은 크기의 정삼각형을 붙여 새로운 모양을 만들었습니다. 예를 들어 n이 4이고, 1번째, 2번째, 4번째 정삼각형 위에 정삼각형을 붙인 모양은 다음과 같습니다.이렇게 만든 모양을 정삼각형 타일 또는 정삼각형 2개를 이어 붙인 마름모 타일로 빈 곳이 없도록 채우려고 합니다. 정삼각형 타일과 마름모 타일은 돌려서 사용할 수 있습니다.타일을 놓을 때 다른 타일과 겹치거나 모양을 벗어나게 놓을 수는 없습니다. 위의 예시 모양을 채우는 방법 중 일부는 다음과 같습니다.사다리꼴의 윗변의 길이를 나타내는 정수 ..

[프로그래머스 lv2]도넛과 막대 그래프

문제 설명도넛 모양 그래프, 막대 모양 그래프, 8자 모양 그래프들이 있습니다. 이 그래프들은 1개 이상의 정점과, 정점들을 연결하는 단방향 간선으로 이루어져 있습니다.크기가 n인 도넛 모양 그래프는 n개의 정점과 n개의 간선이 있습니다. 도넛 모양 그래프의 아무 한 정점에서 출발해 이용한 적 없는 간선을 계속 따라가면 나머지 n-1개의 정점들을 한 번씩 방문한 뒤 원래 출발했던 정점으로 돌아오게 됩니다. 도넛 모양 그래프의 형태는 다음과 같습니다.크기가 n인 막대 모양 그래프는 n개의 정점과 n-1개의 간선이 있습니다. 막대 모양 그래프는 임의의 한 정점에서 출발해 간선을 계속 따라가면 나머지 n-1개의 정점을 한 번씩 방문하게 되는 정점이 단 하나 존재합니다. 막대 모양 그래프의 형태는 다음과 같습니..

[백준] 1060 좋은 수

문제https://www.acmicpc.net/problem/1060 풀이문제가 상당히 수학적이라 바로 이해하기 힘들다.풀이를 해보기 전에 이 글에서 사용할 용어 몇 가지를 약속하고 가자.숫자 집합 S = {s(0), s(1), ... , s(L-1)} 와 같은 형태이다.S 구간이란, S의 원소가 아닌 연속된 정수들의 구간이다.예를 들면 S = {s(0), s(1), s(2)} 일 때 S구간은 (1, s(0)), (s(0), s(1)), (s(1), s(2)), (s(2), 무한대) 가 있다.S구간의 오른쪽에 오는 원소가 s(n)이면 해당 S구간은 S(n)이라고도 한다.x가 포함된 좋은 구간의 갯수는 i다. 어떤 수가 더 좋은 수인지 판단하기 위해서는 어떤 수가 몇 개의 좋은 구간을 가지고 있는지 알아야..

우측값 참조와 이동연산

우측값 참조란?우측값 참조는 이름처럼 우측값을 참조하는 자료형입니다. r-value reference라고도 합니다.lvalue만을 참조할 수 있던 일반적인 참조형과는 다릅니다.일반 참조형은 &기호를 쓰지만, 우측값 참조는 &&를 씁니다.아래 코드를 봐주세요.int main(){ int i = 10; int& iRef = i; //lvalue만 참조 가능 //int& iRef = 10; //컴파일 에러 : 비const 참조에 대한 초기값은 lvalue여야 함 int&& rRef = 11;// rvalue만 참조 가능 //int&& rRef = i;//컴파일 에러 : rvalue 참조를 lvalue에 바인딩할 수 없습니다. const int& cRef = i; //lvalu..

C++ 2024.05.02

RTTI

이번 글은 C++의 virtual 함수의 동작에 대해 이해하고 있으면 더욱 읽기 좋습니다.  모르시는 분은 아래 글을 읽고 보시길 추천합니다.https://ddukddaksudal.tistory.com/147RTTI란?RTTI는 'Run Time Type Information'의 약자입니다. 한국말로는 '실행시간 형식 정보'가 되겠네요.말 그대로 런 타임에 어떤 객체의 타입(형식)을 알 수 있도록 하는 기능입니다.그렇다면 왜 런타임에 객체의 타입을 알아야 할까요? 필요성런타임에 객체의 타입을 알아야하는 상황을 만들어 보겠습니다. class Mover{public: virtual ~Mover() {}};class Walker : public Mover{public: void Walk() { cout 위 코..

C++ 2024.04.27