순회 3

[C++] 문자열 처리 - 연속된 문자열과 동일한 문자열 (1)

문자열 처리 개요 연속된 문자열과 동일한 문자열을 처리하는 것은 다양한 문제 해결에 필수적인 요소 중 하나다. 문자열 내에서 동일하거나 연속적인 문자나 패턴을 식별하고 처리하는 능력은 데이터 압축, 정보 검색, 보안 강화 등 여러 분야에서 중요한 역할을 한다. 특히, 연속된 문자열은 예측이 쉬우므로 보안 문제에서 취약점으로 작용할 수 있으며, 반면에 동일한 문자열은 데이터의 중복을 나타내므로 압축 알고리즘에서 핵심 요소로 작용한다. 이러한 문자열 처리 기법은 컴퓨터 과학과 프로그래밍의 여러 분야에서 활용되며, 효율적인 알고리즘과 메서드를 통해 더 나은 성능과 결과를 얻을 수 있다. 이번 시간에는 이러한 문자열을 처리하는 방법에 대해 알아보도록 하자. 본문 연속된 문자열 연속된 문자열은 abc, 123처럼..

Language/C++ 2023.08.25

[프로그래머스] 소수 찾기 with C++

문제 설명 제한 사항 및 입출력 예제 개념 이 문제는 주어진 문자열에서 추출 가능한 모든 숫자 조합 중 소수가 몇 개 있는지를 찾는 문제다. 이 문제를 해결하기 위해서는 두 가지 주요 과정이 필요하다. 먼저 가능한 모든 숫자 조합을 생성해야 한다는 것이다. 이 과정에서 문자열의 순열을 찾는 개념을 사용한다. 즉, 주어진 문자열의 모든 문자를 사용하여 만들 수 있는 모든 숫자 조합을 배열에 담는다. 두 번째는 소수를 판별하는 것이다. 생성된 모든 숫자 조합을 순회하며 소수인지 판별한다. 문제를 해결하는 과정에서 주의해야 할 점은 동일한 숫자가 두 번 이상 카운트되면 안 된다는 점이다. 예를 들어 "11"은 "1"이 두 번 등장하므로 소수인 11이 두 번 카운트되어서는 안 된다. 이 문제는 중복을 허용하지 ..

[자료구조] 트리 순회(Tree traversal)

트리 순회개요 앞선 포스팅에선 트리에 원소를 삽입하는 방법에 대해 알아보았다. 이번 포스팅에선 트리의 원소를 순회하는 방법에 대해 알아보도록 하자. 여기서 순회란 모든 노드를 한 번씩 방문하는 것을 의미한다.본문 트리를 순회하는 방법은 크게 4가지가 존재한다.전위 순회(Preorder traversal): 현재 노드를 먼저 방문하고, 그다음은 현재 노드의 왼쪽 하위 노드, 마지막으로 현재 노드의 오른쪽 하위 노드를 재귀적으로 방문하는 방식.중위 순회(In-order traversal): 왼쪽 노드를 먼저 방문하고, 그다음에는 현재 노드, 마지막으로 오른쪽 노드를 방문하는 방식.후위 순회(Post-order traversal): 두 자식 노드를 먼저 방문한 후, 현재 노드를 방문하는 방식.레벨 순서 순회(..

CS/자료구조 2023.04.17