본문 바로가기

c++39

[백준/C++] 1874 스택수열 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 이번 문제는 stack & vector 를 사용한 문제 입니다. 기본조건으로 오름차순의 수열을 만들기위하여 입력받은 n만큼의 입력을 반복 합니다. 스택의 top이 입력받은 m과 같다면 pop 시켜 ' - ' 를 벡터에 추가해주도록 합니다. 반대로 입력받은 m보다 작다면 스택에 push 시켜 ' + ' 를 벡터에 추가해주도록 합니다. 위의 두 경우를 만족시킬수 없을경우는 오름차순을 .. 2023. 6. 13.
[백준/C++] 1976 여행 가자 1976번: 여행 가자 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인 www.acmicpc.net 지난번에이어 이번에도 Union-Find 알고리즘을 이용해야하는 문제 입니다. 아직 Union-Find 알고리즘에 익숙하지않기때문에 참고 합니다. #include #include #include #include #include #define fastio cin.tie(0)->ios::sync_with_stdio(0); cout.tie(0); using namespace std; // 백준 1976번 여행 가자 ( Union - Find 문제 ) int n, m;.. 2023. 5. 30.
[C++] 람다 표현식 (Lambda Expression) 람다 함수에 대하여 정리 합니다. 정확히는 람다 표현식(Lambda Expression) 이라고하며 람다 함수(Lambda Function) 라고도 합니다. 람다 표현식 이란? 람다 표현식은 함수나 함수 객체를 별도로 정의 하지 않은 상태에서 필요한 지점에서 임시적인(익명스코프처럼) 함수를 생성하여 사용 할 수 있는 함수 입니다. 클로저(Closure[폐쇄,종결])를 의미하기도 합니다. 람다함수는 함수 포인터에 담을 수 있기때문에 즉흥적으로 사용하기 편리합니다. 단, 이름이 없는 임시적인 것이기때문에 재차 사용하거나 검색하기 어려워 사용을 권장하지는 않는다고 합니다. 람다 표현식의 형태 [①capture] (②parameters) - > {⑤body} 의 형태 식으로 구성이 됩니다. ①capture 캡처.. 2023. 5. 27.
[백준/C++] 1717 집합의 표현 1717번: 집합의 표현 초기에 $n+1$개의 집합 $\{0\}, \{1\}, \{2\}, \dots , \{n\}$이 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다. 집합을 표현하는 프로그램을 작 www.acmicpc.net 대표적인 Union Find 문제 라고 합니다. 해당 알고리즘에대해서 배운적이 없었기때문에 단순히 구조체 배열 구성후 변수 a는 실행조건으로 b, c 는 단순한 구조체 배열에 속한 변수로 하여 문제를 풀려했으나 실패. 다른 풀이를 참고 하도록 합니다. #include #define fastio cin.tie(0)->ios::sync_with_stdio(0); cout.tie(0); using namespace std; // .. 2023. 5. 24.
[자료구조] 함수포인터 함수 포인터 함수도 다른 변수들처럼 자신의 [주소]를 가지고 있습니다. 이 함수의 주소를 포인터 변수에 저장하여 사용할 수 있는 것을 함수 포인터 라고 합니다. [ 함수 포인터 예제 ] int (*f)(int, int); = 리턴타입(*포인터이름)(매개변수1, 매개변수2 / 단,매개변수없을시 () 또는 void); 위의 형태로 선언 할 수 있습니다. 위처럼 선언하였을때 함수의 주소값을 저장할 수 있는 [ f ] 의 이름을 가진 함수포인터가 만들어집니다. [ f ] 라는 이름의 포인터 안에는 함수의 [주소]를 저장 하여 사용 합니다. [ 함수 포인터 사용 예제 ] #include using namespace std; int add(int a, int b) { return ( a + b ); } int ma.. 2023. 5. 24.
[C++/DX11] 3D 가위바위보 Shader & Mesh 로 만든 xml 파일을 이용하여 가위바위보 하는 애니매이션을 만들었습니다. 만들어야하는 부분 간단한 3D형태의 손 (관절은 마음대로 만들어보기) 2개(Player & Com) 조건에따라 애니매이션 변경하기(가위,바위,보) 4개의뷰 (정면,위쪽,좌측,오른쪽) CAM 우선 손모양의 xml 파일이 필요하므로 기본적인 xml파일에 shader & mesh 파일을 넣었습니다. 작성한 xml파일은 아래의 접은글에 참조합니다. (관절의 이름을 짧고간단하게 대충지어버렸습니다.) 더보기 디버깅 & imGui 창을 이용하여 세세한 위치들을 조절하였습니다. 대략적인 손모양을 만들고 해당 xml 파일을 불러오고 관리하도록 Actor 필터에 Hand 클래스를 생성합니다. 해당클래스는 기존에 제작했던 클.. 2023. 5. 21.