C++
-
[C++] 카카오 코딩테스트 < 길 찾기 게임 > 문제풀이백준 문제풀이/etc 2020. 2. 9. 16:30
풀이 바로 본론으로 갑시다. 여기로 가시면 문제를 풀어보실 수 있습니다. 문제를 읽어보니 전무로 승진한 라이언이 사원들을 위해서 무언가 엄청 분석하고 있습니다. 하지만, 문제에서 요구하는 것은 간단합니다. 기본적인 트리를 구현하고 전위순회와 후위 순회를 수행해라. 트리 구현이 필수적인 경우엔 반드시 필요한 요소만을 구현할 필요가 있습니다. 기본적으로 자료구조에서 배운 트리는 Value 값만을 갖고 왼쪽 자식, 오른쪽 자식을 구별합니다. 저는 이 문제를 해결하기 위해 TreeNode 의 멤버 변수로 x, y, value 를 사용했습니다. y 는 상대적인 depth 를 의미합니다. x 는 크기를 비교하는 key 값이 됩니다. value는 실질적으로 답이 되는 값입니다. Tree 의 구현은 자료구조 개념과 같..
-
BOJ 10942 : 팰린드롬?백준 문제풀이/Dynamic Programming 2020. 1. 23. 15:46
문제 명우는 홍준이와 함께 팰린드롬 놀이를 해보려고 한다. 먼저, 홍준이는 자연수 N개를 칠판에 적는다. 그 다음, 명우에게 질문을 총 M번 한다. 각 질문은 두 정수 S와 E로 나타낼 수 있으며, S번째 수부터 E번째 까지 수가 팰린드롬을 이루는지를 물어보며, 명우는 각 질문에 대해 팰린드롬이다 또는 아니다를 말해야 한다. 예를 들어, 홍준이가 칠판에 적은 수가 1, 2, 1, 3, 1, 2, 1라고 하자. S = 1, E = 3인 경우 1, 2, 1은 팰린드롬이다. S = 2, E = 5인 경우 2, 1, 3, 1은 팰린드롬이 아니다. S = 3, E = 3인 경우 1은 팰린드롬이다. S = 5, E = 7인 경우 1, 2, 1은 팰린드롬이다. 자연수 N개와 질문 M개가 모두 주어졌을 때, 명우의 대..
-
[C++] vector<int> a(3) 와 vector<int> a[3] 의 차이는 ?프로그래밍/C++ 2020. 1. 17. 01:45
vector a(3) 와 vector a[3]의 차이는 ? 1. vector a(3) 는 0으로 초기화되어있는 사이즈 3의 a 라는 벡터를 만드는 것을 의미합니다. 아주 기본적인 형태의 선언 방식이고 우리가 알고 있는 모든 방식의 접근이 가능합니다. vector a(3); //0,0,0 a.push_back(1); //0,0,0,1 a.push_back(2); //0,0,0,1,2 a.pop_back(); //0,0,0,1 cout
-
BOJ 11048 : 이동하기백준 문제풀이/Dynamic Programming 2020. 1. 2. 19:31
문제 준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다. 준규는 현재 (1, 1)에 있고, (N, M)으로 이동하려고 한다. 준규가 (r, c)에 있으면, (r+1, c), (r, c+1), (r+1, c+1)로 이동할 수 있고, 각 방을 방문할 때마다 방에 놓여져있는 사탕을 모두 가져갈 수 있다. 또, 미로 밖으로 나갈 수는 없다. 준규가 (N, M)으로 이동할 때, 가져올 수 있는 사탕 개수의 최댓값을 구하시오. 입력 첫째 줄에 미로의 크기 N, M이 주어진다. (1 ≤ N, M ≤ 1,000) 둘째 줄부터 N개 줄에는 총 M개의 숫자가 주어지며, r번째..
-
BOJ 13913 : 숨박꼭질 4백준 문제풀이/GRAPH 2020. 1. 2. 00:07
문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다. 출력 첫째 줄에 수빈이가 동생을 찾는 가장 빠른 시간을 출력한다. 둘째 줄에 어떻게 이동해야 하는지 공백으로 구분해 출력한다..
-
[C/C++] C++ STL Pair 기본 사용법 및 예제프로그래밍/C++ 2019. 8. 23. 08:48
사용 라이브러리 · 기본함수 선언문 · pair p; 생성 · make_pair(자료형, 자료형) : 두개의 원소를 묶은 pair를 만든다. 조회 · first : 첫번째 인자를 반환 · second : 두번째 인자를 반환 기본 응용 · vector · v.push_back( pair( 자료형, 자료형 ) ) : 보통 좌표값을 배열에 저장할때 사용 예제 코드 #include #include #include using namespace std; int main() { //////////선언//////// pair p; //////////생성/////// //둘다 차이 없으니 편한걸 사용 p = make_pair(1, 2); p = { 1,2 }; ////////응용/////// ve..
-
[C/C++] C++ STL Stack 기본 사용법 및 예제프로그래밍/C++ 2019. 8. 22. 16:05
사용 라이브러리 · 기본함수 선언문 · stack s; 삽입 및 추출 · push(element) : 가장 위에 원소를 삽입 · pop() : 가장 위에 있는 원소 추출 조회 · top() : 가장 위에 있는 원소를 가져옴 기타 함수 · empty() : 비어있는 경우 1을 , 그렇지 않은 경우 0을 반환 · size() : 원소의 수를 반환 예제 코드 #include #include using namespace std; int main() { stack s; ////////////삽입 및 추출///////////////// s.push(1); // 1 s.push(2); // 2 1 s.push(3); // 3 2 1 s.push(4); // 4 3 2 1 s.pop(); // 3 2 1..
-
[C/C++] C ++ STL Queue 기본 사용법 및 예제프로그래밍/C++ 2019. 8. 21. 23:58
사용 라이브러리 · 기본함수 선언문 · queue q; 추가 및 삭제 · push(element) : 가장 뒤에 원소를 삽입 · pop() : 가장 앞에 있는 원소 추출 조회 · front() : 가장 앞에 있는 원소를 가져옴 · back() : 가장 뒤에 있는 원소를 가져옴 기타 함수 · empty() : 비어있는 경우 1을 , 그렇지 않은 경우 0을 반환 · size() : 원소의 수를 반환 예제 코드 #include #include using namespace std; int main() { queue q; // q 라는 이름으로 queue를 선언 ///////////삽입 및 추출///////////////// q.push(1); // 1 q.push(2); // 1 2 q.push(..