![(백준/c++) 11054번 - 가장 긴 바이토닉 부분수열](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvPhVH%2FbtrIORmPae7%2F0N8HltBeGZoV9uauRDkjsK%2Fimg.png)
11054번: 가장 긴 바이토닉 부분 수열 (acmicpc.net) 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net * 문제 풀이 알고리즘 문제 내에 있는 예제를 예시로 들면, {1 5 2 1 4 3 4 5 2 1} 에서 가장 긴 바이토닉 부분 수열은 {1, 2, 3, 4, 5, 2, 1} = 답 7이 됩니다. 밑에 작성한 알고리즘은 왼쪽에서 부터 증가하는 부분 수열의 DP(InC)와 오른쪽에서 부터 증가하는 부분 수열의 DP(DeC)를 구해서 그 합 중 가장 큰 수가 해답이 되도록 작성하였습니다. InC = { 1, 2, 2, ..
![[C++] 비동기 프로그래밍](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1IbCm%2FbtsBJhrScsi%2FcdjWbeHK6YHc9dfB00KPJ0%2Fimg.png)
《출처. 시작하자! C++17 프로그래밍 (박헌재 지음)》 시작하기 전 동기와 비동기에 대해서 먼저 알아보자! Asynchronous(비동기) Synchronous(동기) 발음도 어려워 보이는 동기, 비동기 일단 말은 할 수 있어야 하니.. 번역기에 돌려 읽어주는데로 한 번 적어보겠습니다. Synchronous-> siNGkrənəs(씨-인!크로너스) Asynchronous->āˈsiNGkrənəs(에이 씨-인!크로너스) 이런식으로 발음해주고 있습니다. 알아 둡시다.. 면접에서 물어보면 알아듣긴 해야하니깐 (T_T)/ 이제 이 둘의 차이점과 지닌 뜻을 알아보자! 더보기 더보기 더보기 ● Asynchronous(비동기) : 작업을 위임하고 기다리는 방식 쉽게 이야기 하면, 꼭 한 줄 한 줄 순서대로 실행되..
![(c++) 조건 변수(Conditional Variable)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUssFn%2FbtsBT0WDQTl%2FtWCEVmBVpwigBkG3fwBThK%2Fimg.png)
《출처. 시작하자! C++17 프로그래밍 (박헌재 지음)》 독립적으로 실행되는 스레드라 하더라도 경우에 따라 다른 스레드에 전달할 정보가 있기 마련이다. 전달하는 방법 중 우리가 공부할 방법은 '조건변수(Conditional Variable)' 라고 부르는 기능이다. 조건변수는 주로 게임에서 많이 사용하는 데 달리기 시합처럼 모든 선수가 출발선상에 대기한 상태에서 총소리와 함께 출발하도록 스레드 모두 대기 상태로 만들고 동시에 공동 경쟁을 수행한다. 조건변수는 단지 변수를 통해 신호를 주고 받는 기능만을 제공할 뿐 자체 잠금 기능이 없다. 따라서 다수의 스레드에 의해 실행되는 작업이 안전성을 보장하기 위해 별도 뮤텍스를 사용한다. 가장 중요한 함수는 wait(), notify_all() 함수이다. 조건변..
![1분 자기소개 (실제로 면접 때 했던...)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FehCG3z%2FbtsIvazATuN%2FGZLGAw9rkuJkI2kKLj0hrK%2Fimg.jpg)
1분 자기소개가 얼마나 중요하신지 다들 알거라고 생각합니다. 면접관님이 노트북에 적힌 자기소개서를 보면서 듣다가 얼굴을 쳐다 보느냐 안보느냐가 큰 싸인인거 같습니다. 가장 중요한 것은 중복된 말을 하지않고 간결하며 자기가 이 업무를 위해 남긴 작은 업적을 나열하는 것이 제일 좋지 않을까 생각합니다. 그리고 큰 소리로 면접관님을 쳐다보고 ... 당돌하게 !!저는 실제로 사용했던 1분 자기소개를 공개하려고 합니다. 이건 참고만 해주세요!!안녕하세요. 클라이언트 직무에 지원한 XXX입니다. 저는 게임 프로그래밍에 관심이 생겨 디자인학과에서 게임공학으로 편입 후 게임을 제작한 경험이 총 4번 있습니다. 이 중 마지막 게임은 학교의 산업대전에서 우수작으로 선정됨으로서 완성도를 확인한 작품이기도 합니다. 3년간 게..
![실무 면접 대비 3번째 운영체제, 그래픽스 기초 (게임 클라이언트 프로그래머 기준)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqeCBX%2FbtsIvmUlxCb%2FWG0tOOBZR6Vwx7Nh5juFQ0%2Fimg.jpg)
운영체제 기초1. 변수들이 메모리에 저장되는 영역에 대해서 설명해보아라.메모리 영역은 code bata heap stack으로 이루어져 있습니다. 이 순서대로 낮은 주소에서 높은 주소로 메모리를 저장합니다. stack영역 빼고 모두 런타임에서 크기가 결정되며 stack영역은 컴파일 타임에 크가가 결정됩니다.code영역은 실행될 명령어가 들어가는 구역입니다. 저희가 작성한 소스 코드가 들어가고 상수또한 이곳에 들어갑니다. 물론 컴파일 된 기계어가 들어갈 것이며 프로그램이 끝날 때까지 메모리에 계속 적재되어 있습니다. bata영역은 전역변수 또는 static등이 지정되는 구역입니다. 이 또한 프로그램이 끝날 때까지 메모리에 계속 적재 됩니다. heap영역은 malloc이나 new로 동적 할당 받은 메모리가 ..
![실무 면접 대비 2번째 알고리즘, STL, 자료구조 (게임 클라이언트 프로그래머 기준)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlZQRy%2FbtsIvN40EVG%2FOQfX64eEtmMKtwCsWqKPr1%2Fimg.jpg)
0. STL이란 뭔가요? Standard Template Library로 C++의 템플릿을 사용하여 표준으로 정리된 라이브러리입니다. 반복자/컨테이너/알고리즘/함수 객체등의 라이브러리로 구성됩니다. 1. 시퀀스 컨테이너, 연관 컨테이너, 어뎁터 컨테이너에 대해서 설명해주세요. (자료의 구조로 구분을 하면…)시퀀스 컨테이너는 자료를 입력한 순서대로 저장하기 때문에 저장 검색 알고리즘이라고 불립니다. 많지 않은 양의 자료/검색속도가 중요하지 않은 경우에 사용되며 vector, list, string, dequue등이 이에 해당합니다. 연관 컨테이너는 일정한 규칙에 따라 자료를 조직화하여 저장하는 것을 말합니다. 자료를 정렬하여 저장하기 때문에 검색에 유리하고 많은 양의 자료/빠른 검색이 중요할 때 사용합니다..
![실무 면접 대비 1번째 C / C++ (게임 클라이언트 프로그래머 기준)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIUrMW%2FbtsIwe83VUO%2FhdKKzVsKQ1krBkYsyBzIUk%2Fimg.jpg)
게임 클라이언트 프로그래머가 준비해야 할 실무면접 리스트입니다. 취준 할 때 만들었던건데 공유하려고 올립니다. 준비해야 될 영역을 간략하게 비중과 함께 이야기하면, 1. C / C++ (40% ~ 60%)2. 그래픽스 개념 (20%)3. 운영체제 (10%~20%)4. 데이터베이스 (10%)5. 알고리즘, 자료구조 (20%~30%) : 실무면접 기준입니다. 알고리즘과 자료구조는 코딩테스트는 당연히 100%이고필기 테스트라면 50%라고 생각하시면 될거 같습니다. 대답하는 형식으로 준비했으니 고려해주세요.첫번째 C++기초 프로그래밍 기초 예상 질문1. C++의 특징을 말해주세요.C++언어는 객체지향언어로 4가지의 특징이 있습니다.첫번째 다형성입니다. 하나의 객체가 여러 가지 타입을 가질수 있는 것을 의미합니..
![[Programmers, C++, DP] '정수 삼각형'](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcqzirg%2FbtrJql11Qce%2FBS1m0pOn6Dc1fYk8Q21VXK%2Fimg.png)
문제 URL : programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 문제 풀이: 기본이고 백준에서 너무 흔한 DP문제라서 쉽게 풀었다. 메모리 제이션을 사용했다. 약간 헷갈리지 말아야 할거는 원본의 데이터를 더해주는 것이 아니라 우리가 채워나가고 있는 Tri를 더 해줘야하는 것을 까먹지 말자 !!
![(백준/c++) 1504번 - 특정한 최단경로](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRAzPq%2FbtrIPUp32hR%2FBjEOHjYA5EpA7RhK3OJqu1%2Fimg.png)
문제를 풀기만을 위한 코드 이여서 좀 복잡해 보입니다. 한 4번 틀렸는데 양방향을 고려해야하기 때문에 vec에 1->2 (가중치: 4)이면 vec에 양방향으로 움직일 수 있도록 vec[a].push_back(make_pair(c, b)); vec[b].push_back(make_pair(c, a)); 이렇게 넣어주시면 됩니다. 그리고 계속 틀려서 봤더니 inf가 int 범위를 넘어버리면 음수가 되기때문에 마지막 결과를 inf만 고려하는 것이 아니라 음수도 고려해주셔야 합니다. ^^
![(백준/c++) 1753번 - 최단경로](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FImeiS%2FbtrINNdRH56%2FHV6gdfMaLPfdKYVwrkvjt1%2Fimg.png)
문제 방향성이 없는 그래프가 주어진다. 세준이는 1번 정점에서 N번 정점으로 최단 거리로 이동하려고 한다. 또한 세준이는 두 가지 조건을 만족하면서 이동하는 특정한 최단 경로를 구하고 싶은데, 그것은 바로 임의로 주어진 두 정점은 반드시 통과해야 한다는 것이다. 세준이는 한번 이동했던 정점은 물론, 한번 이동했던 간선도 다시 이동할 수 있다. 하지만 반드시 최단 경로로 이동해야 한다는 사실에 주의하라. 1번 정점에서 N번 정점으로 이동할 때, 주어진 두 정점을 반드시 거치면서 최단 경로로 이동하는 프로그램을 작성하시오. 입력 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지..