[C++ 풀이] Codility - Lessons 8 (Leader), Dominator
이 문제는 Codility 사이트에서 확인하고 문제를 풀 수 있습니다. https://www.codility.com/ 문제 설명 이 문제는 배열 A가 주어지고, A의 요소들은 -2,147,483,648 ~ 2,147,483,647 사이의 정수로 입력됩니다. 이 중 배열 길이의 절반 초과로 나오는 정수가 있을 경우 해당 정수의 Index 값을 반환하면 되고, 없을 경우엔 -1을 반환하면 됩니다. 예를 들어 위 예제처럼 A의 배열 요소가 주어진다면, 3의 갯수는 5개가 됩니다. 배열 A의 길이는 8이고요. 따라서 배열 절반 길이인 4보다 3의 갯수가 더 많음으로, return 값은 0, 2, 4, 6, 7(A배열의 Index값) 중 하나의 값만 return해주면 됩니다. 결과 #include // you c..
2019. 10. 4.
[C++ 풀이] Codility - Lessons 7, (Stacks and Queues) Fish
이 문제는 Codility 사이트에서 확인하고 문제를 풀 수 있습니다. https://www.codility.com/ 문제 설명 배열 A[]와 B[]가 주어지고 A의 배열 요소는 물고기의 크기를 나타냅니다. A배열의 index는 물고기의 순서를 나타내고요. B배열은 해당 물고기가 위로 올라갈지 밑으로 내려갈지 구분해주는 요소입니다. B의 배열 값은 0과 1로만 주어지며 0은 물고기가 상류로, 1은 물고기가 하류로 가는 설정입니다. 글로만 읽으면 이해가 안가실태니 그림을 첨부하겠습니다. A[] = { 4, 3, 2, 1, 5}, B[] = { 0, 1, 0, 0, 0} 이라고 가정했을 때 이런식이 됩니다. 상류로 가는 물고기와 하류로 가는 물고기가 만나면 큰녀석이 잡아먹습니다. 단, 물고기의 이동속도는 동..
2019. 9. 28.
C++] 인접 리스트 구현
인접리스트는 그래프의 한 종류입니다. 인접리스트를 쓰는 가장 큰 이유는 바로 탐색 때문인데, 우리는 인접리스트를 통해 연결된 모든 노드들을 확인할 수 있습니다. 우선 아래의 그림의 그래프를 만들어 보겠습니다. #include #include #include #include using namespace std; enum { A, B, C, D ,E}; void AddGraph(vector * v, int x, int y) { v[x].push_back(y); v[y].push_back(x); } int main(void) { vector g[5]; AddGraph(g, A, B); //A B 연결 AddGraph(g, A, D); //A D 연결 AddGraph(g, B, C); //B C 연결 AddGr..
2019. 9. 23.
[C++ 풀이] Codility - Lessons 7, (Stacks and Queues) Brackets
이 문제는 Codility 사이트에서 확인하고 문제를 풀 수 있습니다. https://www.codility.com/ 문제. 설명 '(', '{', '[' 문자가 있는 문자열 S에 대해 문자열이 서로 대칭이 되는지 않되는지를 구하는 문제입니다. "{[()()]}" 는 서로 대칭임으로 1을 반환. "([)()]" 는 서로 대칭이 아님으로 0을 반환. 즉, 0 or 1 을 반환하면 되는 문제입니다. 여기서 'S'문자열의 최대 길이는 200,000이고 문자열의 원소는 '(', ')', '{', '}', '[', ']' 만 들어 있습니다. 또한 빈 문자열이 들어오면 1을 반환해 주면 됩니다. 결과 #include using namespace std; int solution(string &S) { // write..
2019. 9. 22.
[C++ 풀이] Codility - Lessons 6, (Sorting) Triangle
이 문제는 Codility 사이트에서 확인하고 문제를 풀 수 있습니다. https://www.codility.com/ 문제. 설명 A[] 배열이 주어지고 A의 범위는 0 ~ 100,000. A배열의 각 원소의 값은 −2,147,483,648 ~ 2,147,483,647. A배열의 원소중 다음의 조건식을 만족하는 결과를 구하시오. A[P] + A[Q] > A[R], A[Q] + A[R] > A[P], A[R] + A[P] > A[Q]. 0 ≤ P < Q < R < N 위 예제인 A[0] = 10 A[1] = 2 A[2] = 5 A[3] = 1 A[4] = 8 A[5] = 20 이걸 보면 알 수 있습니다. 해당 조건을 만족하는 배열 원소는 A[0] = 10, A[2] = 5, A[4] = 8 입니다. 배열 ..
2019. 9. 2.