Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++

  1. C++로 순환 연결 리스트의 노드 개수 계산하기

    노드들로 구성된 순환 연결 리스트가 주어졌을 때, 이 리스트에 포함된 노드의 개수를 계산하는 것이 목표입니다.순환 연결 리스트(Circular Linked List)는 연결 리스트의 한 변형으로, 첫 번째 요소가 마지막 요소를 가리키고 마지막 요소가 다시 첫 번째 요소를 가리키는 구조를 가집니다. 단일 연결 리스트(Singly Linked List)와 이중 연결 리스트(Doubly Linked List) 모두 순환 연결 리스트로 만들 수 있습니다.이 글에서는 단일 연결 리스트를 순환 연결 리스트 형태로 구현한 뒤, 해당 리스트의 노

  2. C++로 구현하는 이진 트리의 비잎(Non-Leaf) 노드 개수 세기

    이진 트리가 주어졌을 때, 트리에 존재하는 비잎 노드(Non-Leaf Node)의 개수를 계산하는 것이 이 글의 목표입니다.이진 트리란?이진 트리(Binary Tree)는 데이터를 저장하기 위해 사용되는 특수한 자료구조입니다. 이진 트리는 각 노드가 최대 두 개의 자식 노드만 가질 수 있다는 특별한 조건을 가지고 있습니다.이진 트리는 정렬된 배열과 연결 리스트의 장점을 모두 갖춘 자료구조입니다. 탐색 속도는 정렬된 배열만큼 빠르고, 삽입·삭제 연산은 연결 리스트만큼 빠르게 수행할 수 있기 때문입니다.비잎 노드는 자식 노드를 하나 이

  3. C++에서 [l, r] 범위의 ASCII 값을 가진 알파벳 개수 세기 및 출력하기

    임의의 길이를 가진 문자열이 하나 주어지며, 이 문자열 안에서 ASCII 값이 지정된 범위 [l, r]에 속하는 알파벳의 개수를 계산하고 해당 문자들을 출력하는 것이 이번 문제의 목표입니다. 대문자 A~Z의 ASCII 값 ABCDEFGHIJKLMNOPQRS65666768697071727374757677787980818283 TUVWXYZ84858687888990 소문자 a~z의 ASCII 값 abcdefghijklmnopqrs979899100101102103104105106107108109110111112113114115 tuvw

  4. C++에서 [l, r] 범위에 포함되지 않는 ASCII 값을 가진 알파벳 세고 출력하기

    임의의 길이를 가진 문자열이 주어졌을 때, 문자열 안에서 ASCII 값이 지정된 범위 [l, r]에 속하지 않는 알파벳의 개수를 계산하고 해당 알파벳을 출력하는 것이 이번 글의 목표입니다. 대문자 A~Z의 ASCII 값 ABCDEFGHIJKLMNOPQRS 65666768697071727374757677787980818283 TUVWXYZ 84858687888990 소문자 a~z의 ASCII 값 abcdefghijklmnopqrs 979899100101102103104105106107108109110111112113114

  5. C++ 배열에서 중복 없는 고유 요소 개수 계산하기

    문제 개요 크기에 상관없이 중복된 요소를 포함할 수 있는 정렬되지 않은 배열이 주어지며, 우리의 과제는 이 배열에서 고유(distinct) 요소의 개수를 계산하는 것입니다. 배열(array)은 동일한 자료형의 요소들을 고정된 크기로 순차적으로 저장할 수 있는 가장 기본적인 자료구조입니다. 여러 데이터를 하나의 컬렉션으로 저장할 수 있으며, 같은 타입의 변수들이 모인 집합이라고 생각하면 더 쉽게 이해할 수 있습니다. 예시 입력 : int arr[] = {1, 1, 2, 3, 3, 4, 4} 출력 : count is 4 설명 : 주어

  6. C++에서 첫 번째 배열에는 있지만 두 번째 배열에는 없는 요소 개수 계산하기

    임의의 크기를 가진 정수형 요소 배열이 주어졌을 때, 첫 번째 배열에는 존재하지만 두 번째 배열에는 없는 요소의 개수를 계산하는 것이 이 글의 목표입니다. 배열(array)은 동일한 자료형의 요소들을 고정된 크기로 순차적으로 저장할 수 있는 기본적인 자료구조입니다. 배열은 데이터 집합을 저장하는 용도로 사용되지만, 실제로는 같은 타입의 변수들이 모인 컬렉션으로 이해하면 훨씬 직관적입니다. 예시 입력 − int arr_1[] = {1, 2, 3, 4} int arr_2[] = {1, 5, 6, 7, 8} 출력 − 개수는

  7. C++ 배열에서 주어진 두 요소 사이의 요소 개수 구하기

    정수로 이루어진 배열과 두 개의 숫자 start(시작)와 end(끝)가 주어졌을 때, 배열 안에서 start와 end 사이에 존재하는 요소의 개수를 계산하는 것이 이번 문제의 목표입니다.배열이란?배열(array)은 동일한 자료형의 요소들을 고정된 크기로 순차적으로 저장할 수 있는 자료구조입니다. 데이터 집합을 저장하는 용도로 사용되지만, 같은 타입의 변수들이 모인 하나의 컬렉션으로 이해하면 더욱 유용합니다. 만약 start 요소가 배열에 여러 번 등장한다면 첫 번째 등장 위치를 기준으로 삼고, end 요소가 여러 번 등장한다면 마지

  8. C++ 배열에서 나누어 떨어지는 쌍의 개수 구하기

    정수 요소로 이루어진 임의의 크기를 가진 배열이 주어졌을 때, 배열에서 한 요소가 다른 요소를 나누어 떨어지게 하는 쌍(pair)의 개수를 계산하는 것이 우리의 과제입니다.배열은 동일한 타입의 요소들을 고정된 크기로 순차적으로 저장할 수 있는 자료구조입니다. 배열은 데이터 모음을 저장하는 용도로 사용되지만, 같은 타입의 변수들이 모인 집합으로 이해하면 더욱 유용하게 활용할 수 있습니다.예시입력 − int arr[] = {1, 2, 3, 6}출력 − count is 4설명 − (1,2), (1,3),

  9. C++로 다른 배열의 요소 중 적어도 하나로 나누어 떨어지는 요소 개수 세기

    두 개의 정수 배열 arr_1[]과 arr_2[]가 주어졌을 때, 첫 번째 배열의 요소 중 두 번째 배열의 요소를 약수로 가지는(즉, 나누어 떨어지는) 요소의 개수를 계산하는 것이 과제입니다. 다시 말해, arr_1[]의 각 요소가 arr_2[]의 어떤 요소로 나누어 떨어지는지 확인하고, 해당되는 요소의 총 개수를 구해야 합니다.배열은 동일한 자료형의 요소들을 고정된 크기로 순차적으로 저장할 수 있는 자료구조입니다. 배열은 데이터 모음을 저장하는 용도로 사용되며, 같은 타입의 변수들이 모인 집합으로 생각하면 이해하기 더 쉽습니다.예

  10. C++로 배열에서 두 요소의 합이 배열에 존재하는 고유한 쌍의 개수 구하기

    정수 값으로 이루어진 임의 크기의 배열 arr[]가 주어졌을 때, 두 요소의 합 역시 같은 배열 안에 존재하는 고유한 쌍(distinct pairs)의 개수를 계산하는 것이 목표입니다.배열은 동일한 타입의 요소들을 정해진 크기만큼 순차적으로 저장할 수 있는 기본적인 자료구조입니다. 데이터 집합을 저장하는 용도로 사용되며, 같은 타입 변수들의 모음으로 이해하면 더욱 직관적으로 활용할 수 있습니다.기억해야 할 핵심 사항쌍은 요소의 순서에 관계없이 한 번만 계산됩니다. 예를 들어 (3, 2)와 (2, 3)은 서로 다른 쌍이 아니라 하나의

  11. C++로 두 배열에서 자릿수 합이 같은 고유한 쌍 개수 구하기

    정수 값으로 이루어진 두 배열 arr_1[]과 arr_2[]가 주어졌을 때, 자릿수 합이 서로 같은 고유한 쌍(distinct pair)의 개수를 계산하는 것이 목표입니다. 즉, arr_1[]에서 한 값을, arr_2[]에서 다른 한 값을 선택하여 쌍을 만들고, 선택된 두 값의 각 자릿수 합이 동일해야 합니다.배열(array)은 동일한 타입의 요소들을 고정된 크기로 순차적으로 저장할 수 있는 기본적인 데이터 구조입니다. 배열은 데이터 모음을 저장하는 용도로 사용되지만, 실무에서는 같은 타입의 변수들이 모인 집합으로 이해하는 것이 더

  12. C++로 나머지 모든 요소의 합을 나눌 수 있는 배열 요소 개수 구하기

    정수 값으로 이루어진 배열 arr[]가 주어졌을 때, 나머지 모든 요소의 합을 나눌 수 있는 요소가 몇 개인지 계산하는 것이 이번 문제의 목표입니다.배열은 동일한 자료형의 요소들을 고정된 크기로 순차적으로 저장할 수 있는 대표적인 자료구조입니다. 데이터 집합을 하나의 이름으로 관리할 수 있으며, 같은 타입의 변수 여러 개를 묶어 놓은 컬렉션으로 이해하면 쉽습니다.예시입력 − int arr_1[] = {9, 6, 3}출력 − 개수는 3설명 − 요소 3을 제외한 나머지 합은 9+6=15로 3으로 나누어

  13. C++에서 배열 요소 곱의 약수 개수 구하는 방법

    문제 소개정수로 이루어진 배열 arr[]가 주어졌을 때, 배열의 모든 요소를 곱한 값의 약수(제수) 개수를 계산하는 것이 목표입니다.배열은 동일한 자료형의 요소들을 고정된 크기만큼 순차적으로 저장할 수 있는 대표적인 자료구조입니다. 배열은 데이터 집합을 저장하는 용도로 사용되며, 같은 타입의 변수들이 모인 컬렉션으로 생각하면 더욱 직관적으로 이해할 수 있습니다.예시입력 − int arr[] = {2, 3}출력 − count is 4설명 − 배열 요소의 곱은 2 × 3 = 6이며, 6의 약수는 1, 2, 3, 6입니다. 따라서 6의

  14. C++에서 절대 차이가 K를 초과하지 않는 배열의 최대 요소 수 계산하기

    정수로 이루어진 배열 arr[]와 양의 정수 k가 주어졌을 때, 요소 사이의 절대 차이가 k를 초과하지 않는 조건을 만족하면서 함께 묶을 수 있는 최대 요소 수를 계산하는 것이 이번 문제의 목표입니다.배열(array)은 같은 자료형의 요소들을 고정된 크기로 순차적으로 저장하는 가장 기본적인 자료구조 중 하나입니다. 여러 개의 데이터를 하나의 이름 아래 관리할 수 있어, 동일한 타입의 변수들을 모아둔 컬렉션으로 생각하면 훨씬 직관적으로 이해할 수 있습니다.예제입력 − int arr[] = {2, 3, 6, 12, 14}, k = 5출

  15. C++로 이진 탐색 트리(BST)에서 주어진 범위 내 노드 개수 구하기

    노드들로 구성된 이진 탐색 트리(Binary Search Tree)와 하나의 범위가 주어졌을 때, 해당 범위 안에 포함되는 노드의 개수를 계산하고 그 결과를 출력하는 것이 이 글의 목표입니다.이진 탐색 트리(BST)란?이진 탐색 트리(BST)는 모든 노드가 다음 성질을 만족하는 트리 자료구조입니다.노드의 왼쪽 서브트리에는 부모 노드의 키 값보다 작거나 같은 키를 가진 노드들이 위치합니다.노드의 오른쪽 서브트리에는 부모 노드의 키 값보다 큰 키를 가진 노드들이 위치합니다.따라서 BST는 모든 서브트리를 왼쪽 서브트리와 오른쪽 서브트리

  16. C++에서 두 수를 나눌 때 소수점 이하 자릿수 계산하는 방법

    두 개의 정수 num1과 num2가 주어졌을 때, num1을 num2로 나눈 결과에서 소수점 이하 자릿수가 총 몇 개인지 계산하는 것이 이 글의 목표입니다.예시입력: num1 = 2, num2 = 5출력: 자릿수는 1설명: 2를 5로 나누면 2 ÷ 5 = 0.4이므로 소수점 이하 자릿수는 한 자리입니다. 따라서 결과는 1이 됩니다.입력: num1 = 2, num2 = 0출력: 부동 소수점 예외(Floating point exception) 발생 후 비정상 종료설명: 어떤 수든 0으로 나누면 오류가 발생하며 프로그램이 비정상적으로 종

  17. C++로 숫자를 하나씩 표시할 때 LED 조명 변경 횟수 계산하기

    양의 정수 num이 주어졌을 때, 숫자를 하나씩 차례로 표시하는 과정에서 발생하는 LED 조명의 변경 횟수를 계산하는 것이 이번 문제의 목표입니다. 처음에는 모든 LED가 꺼져 있는 상태라고 가정하며, 문자열 값에 따라 순차적으로 켜지게 됩니다.이 문제를 해결하려면 먼저 7세그먼트 디스플레이가 무엇이고 어떻게 작동하는지 이해해야 합니다.7세그먼트 디스플레이란?7세그먼트 디스플레이는 이미지, 텍스트 또는 십진수 형태로 정보를 표시할 수 있는 출력 장치로, 구조가 더 복잡한 도트 매트릭스 디스플레이의 대안으로 널리 사용됩니다. 디지털

  18. C++ 동적 프로그래밍으로 두 문자열의 공통 부분 시퀀스 개수 구하기

    두 문자열 str1과 str2가 주어졌을 때, 두 문자열에 공통으로 존재하는 부분 시퀀스(subsequence)의 개수를 계산하는 것이 이번 글의 목표입니다. 여기서는 동적 프로그래밍(Dynamic Programming) 기법을 활용하여 문제를 해결합니다.동적 프로그래밍이란?동적 프로그래밍은 분할 정복(Divide and Conquer)과 마찬가지로 하나의 큰 문제를 더 작고 단순한 하위 문제로 나누어 해결하는 방식입니다. 다만 분할 정복과 달리, 하위 문제들을 서로 독립적으로 풀지 않는다는 점이 특징입니다. 대신 작은 하위 문제들

  19. C++로 문자열의 자음 개수 구하기: 반복문과 재귀 함수 활용법

    개요임의의 길이를 가진 문자열 str이 주어졌을 때, 반복(iteration) 방식과 재귀(recursion) 방식, 두 가지 방법으로 해당 문자열에 포함된 자음의 개수를 계산하는 것이 이 글의 목표입니다.여기서 자음(consonant)이란 모음(vowel)이 아닌 알파벳을 의미합니다. 즉, a, e, i, o, u를 제외한 나머지 알파벳은 모두 자음으로 간주됩니다. 따라서 아래 프로그램에서는 문자열 안에서 이 다섯 개의 모음을 제외한 알파벳의 개수를 세어야 합니다.재귀와 반복은 공통적으로 일련의 명령어를 반복해서 실행한다는 특징이

  20. C++ 벡터에서 특정 값 또는 조건과 일치하는 요소 개수 구하는 방법

    벡터(vector)가 주어졌을 때, 그 안에서 특정 목표 값(target)이나 주어진 조건과 일치하는 요소의 개수를 계산하는 것이 이 글의 과제입니다.벡터란 무엇인가?벡터는 크기를 자유롭게 변경할 수 있는 시퀀스 컨테이너(sequence container)입니다. 컨테이너란 동일한 타입의 데이터를 담는 객체를 의미하며, 시퀀스 컨테이너는 요소들을 엄격하게 선형 순서로 저장합니다.벡터는 요소들을 연속된 메모리 공간에 저장하기 때문에 첨자 연산자([])를 사용해 어떤 요소든 직접 접근할 수 있습니다. 배열과 달리 벡터는 실행 중에 필요

Total 5981 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:173/300  20-컴퓨터/Page Goto:1 167 168 169 170 171 172 173 174 175 176 177 178 179