2020 카카오 공채 : 문자열 압축 (풀이 및 코딩)
조건은 s의 길이가 1 이상 1,000 이하.... 모든 알파벳은 소문자 입니다. 해당 코드는 2중 for문으로 충분히 풀이가 가능하고 탐색 조건도 쉽습니다. 앞에서부터 문자들을 차례대로 비교하면 됩니다. 처음엔 1개씩, 그 다음 2개, 그 다음 3개 ..... (s의 총 길이 / 2) 개 까지... 비교문자 마지막을 왜 s의 총 길이 / 2로 했냐면 그 이상 넘어가 버리면 비교의 의미가 없기 때문입니다. (비교할 수가 없죠) 그래서 예제 1번을 보면 aabbaccc 이렇게 있는데, 처음엔 a, a, b, b, a, c, c 하나씩 비교하고, 그 다음엔 aa, bb, ac, cc 이렇게 2개씩 비교하고, 그 다음엔 aab, bac, cc 이렇게 3개씩 비교하고..... 이런식으로 비교한 후 중복되는 알파..
2019. 11. 23.
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.