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

C 프로그래밍

  1. C 언어로 16진수를 8진수로 변환하는 프로그램

    개요 16진수(Hexadecimal) 숫자가 문자열 형태로 주어졌을 때, 이를 8진수(Octal)로 변환하는 것이 목표입니다. 16진수를 8진수로 바로 변환하기는 어렵기 때문에, 일반적으로 다음의 두 단계를 거칩니다. 16진수에 해당하는 2진수 값을 구합니다. 구한 2진수를 8진수로 변환합니다. 16진수란 무엇인가? 16진수는 밑(base)이 16인 수 체계입니다. 0~9까지는 숫자를 그대로 사용하고, 10부터는 알파벳으로 표현합니다. 즉, A는 10, B는 11, C는 12, D는 13, E는 14, F는 15를 의미합니다.

  2. 배열과 반복문 없이 C 프로그램으로 {1,2,3,…,n}의 모든 부분집합 출력하기

    양의 정수 n이 주어졌을 때, 배열이나 반복문을 사용하지 않고 집합 {1, 2, 3, 4, …, n}의 모든 부분집합을 출력해야 합니다.예를 들어 n = 3이 주어진다면, 집합 {1, 2, 3}의 모든 부분집합인 {1 2 3}, {1 2}, {2 3}, {1 3}, {1}, {2}, {3}, { }을 출력해야 합니다.그런데 반복문과 배열을 사용할 수 없다는 제약 조건이 있으므로, 이러한 유형의 문제는 재귀(recursion)만이 유일한 해결 방법입니다.예시입력: 3 출력: { 1 2 3 }{ 1 2 }{ 1 3 }{ 1 }{ 2 3

  3. C 언어로 숫자를 영어 단어로 변환하는 프로그램

    숫자 값으로 이루어진 문자열이 주어졌을 때, 해당 숫자를 영어 단어 형태로 변환하는 것이 이번 글의 목표입니다.예를 들어 입력이 361이라면 출력은 Three hundred sixty one이 되어야 합니다. 이 문제를 해결하기 위해서는 각 숫자가 일의 자리, 십의 자리, 백의 자리, 천의 자리 등 어느 위치에 있는지를 고려해야 합니다.이번에 소개할 코드는 최대 4자리 숫자, 즉 0부터 9999까지만 지원합니다. 따라서 입력값도 0에서 9999 사이여야 합니다.예를 들어 1,111을 생각해 보면 각 자릿수는 다음과 같이 구분됩니다.

  4. C언어로 RGB 색상 모델을 HSV 색상 모델로 변환하는 프로그램

    정수 형태로 주어진 RGB 색상 값이 있을 때, 이를 변환하여 적절한 HSV 색상 값을 구하는 것이 이번 글의 목표입니다.RGB 색상 모델이란?RGB 색상 모델은 빨강(Red), 초록(Green), 파랑(Blue)의 세 가지 색상으로 구성됩니다. RGB 모델은 디스플레이 기술 분야에서 가장 널리 사용되는 색상 모델로, 가산 혼합(additive) 방식에 기반합니다. 즉, 세 가지 색상을 서로 다른 강도로 조합하여 디스플레이 장치 위에 수백만 가지의 다양한 색상을 표현할 수 있습니다.HSV 색상 모델이란?HSV 색상 모델은 색조(Hu

  5. 파이썬으로 웹사이트 왕복 시간(RTT)을 계산하는 프로그램

    왕복 시간(RTT)이란?임의의 웹사이트 URL 주소가 주어졌을 때, 해당 웹사이트의 왕복 시간(Round Trip Time, RTT)을 계산해 보겠습니다.RTT(Round Trip Time)란 신호를 전송하는 데 걸린 시간과 그 신호에 대한 응답(확인 메시지)을 수신하는 데 걸린 시간을 합한 총 소요 시간을 의미합니다. 이 시간에는 두 지점 간의 신호 전파 시간도 포함됩니다.일반 사용자는 IP 주소로 핑(ping)을 보내는 방법을 통해 자신의 왕복 시간을 확인할 수 있습니다.RTT에 영향을 미치는 요소왕복 시간은 다음과 같은 다양한

  6. C 언어로 등비수열(GP)의 N번째 항 구하기

    첫째 항 a, 공비 r, 그리고 항의 개수 n이 주어졌을 때, 등비수열의 n번째 항을 구하는 것이 이 글의 목표입니다.프로그램 작성 방법을 살펴보기에 앞서, 먼저 등비수열(Geometric Progression)이 무엇인지 정확히 이해할 필요가 있습니다.등비수열이란?등비수열(기하수열)은 수학에서 첫 번째 항 이후의 각 항이 바로 앞의 항에 공비(common ratio)를 곱하는 방식으로 일정한 개수만큼 만들어지는 수열을 의미합니다.예를 들어 2, 4, 8, 16, 32...는 첫째 항이 2이고 공비가 2인 등비수열입니다. 만약 n

  7. C언어로 등차수열의 N번째 항 구하기: 공식과 구현 방법

    문제 개요첫째 항 a, 공차 d, 그리고 항의 개수 n이 주어졌을 때, 해당 등차수열의 n번째 항을 구하는 것이 이번 문제의 목표입니다.프로그램을 작성하기 전에, 등차수열이 무엇인지 먼저 살펴보겠습니다.등차수열(Arithmetic Progression)이란?등차수열(산술 수열)은 연속된 두 항 사이의 차이가 항상 일정한 수열을 의미합니다.예를 들어 첫째 항 a = 5, 공차 = 1이고 3번째 항을 구하고자 한다면, 수열은 5, 6, 7이 되므로 출력값은 7이 됩니다.등차수열의 n번째 항 공식등차수열의 각 항은 다음과 같이 표현할 수

  8. C 언어로 숫자가 특정 진법에 속하는지 확인하는 프로그램

    문자열 형태의 숫자와 진법(base)이 주어졌을 때, 해당 숫자가 주어진 진법에 속하는지 판별하는 것이 이번 글의 목표입니다.우리는 수 체계에 따라 숫자와 진법을 검사해야 합니다. 예를 들어 2진수의 밑은 2, 8진수의 밑은 8, 10진수의 밑은 10, 16진수의 밑은 16입니다. 따라서 문자열로 주어진 숫자가 특정 진법에 속하는지 확인하고, 속한다면 화면에 Yes를 출력하고 그렇지 않다면 No를 출력해야 합니다.예를 들어 우리는 1A6이 16진수이고 1010이 2진수라는 것을 눈으로 보면 알 수 있습니다. 하지만 프로그램을 통해

  9. C언어로 입력받은 숫자를 해시(#) 기호로 크게 출력하는 프로그램

    문자열 형태로 주어진 숫자 n이 있을 때, 이 숫자를 해시(#) 기호를 이용해 큰 크기로 출력하는 것이 이번 문제의 목표입니다.예를 들어 1234라는 숫자가 주어졌다면, 다음과 같은 형태로 표현되어야 합니다.마찬가지로 우리가 작성할 솔루션도 위와 같은 방식으로 결과를 출력하도록 구현합니다.예시입력: n[] = {2234} 출력:입력: n[] = {987} 출력:문제 해결 접근 방법최대 자릿수의 숫자를 문자열 형태로 입력받습니다.각 숫자(0~9)마다 원하는 큰 패턴을 2차원 배열로 하나씩 정의합니다.문자열을 순회하면서 각 숫자에 해당

  10. C 언어로 n번째 카탈란 수 구하기: 재귀 알고리즘 완벽 정리

    정수 n이 주어졌을 때, 해당 위치에 있는 카탈란 수(Catalan Number)를 구하는 것이 이번 글의 목표입니다. 프로그램 작성에 앞서, 카탈란 수가 무엇인지 먼저 살펴보겠습니다.카탈란 수는 다양한 조합론(Counting) 문제에서 자연스럽게 나타나는 자연수 수열입니다. 이진 트리, 괄호 배치, 다각형 분할 등 여러 수학적 구조에서 반복적으로 등장하는 것으로 유명합니다.카탈란 수의 정의와 공식카탈란 수 C₀, C₁, C₂, … Cₙ은 다음 공식으로 정의됩니다.$$c_{n}=\frac{1}{n+1}\binom{2n}{n} = \

  11. C 언어로 구현하는 코사인(cos x) 급수의 합 계산 프로그램

    각도 값 x와 항의 개수 n이 주어졌을 때, x는 코사인 함수에 입력될 각도를 의미하며, n은 cos(x) 급수에서 계산할 항의 개수를 나타냅니다.코사인(Cos x) 함수란?Cos(x)는 삼각함수의 하나로, 주어진 각도 x에 대한 코사인 값을 계산하는 데 사용됩니다. 단위원에서 해당 각도에 대응하는 점의 x좌표가 곧 코사인 값이 됩니다.수식$$\cos (x) = \displaystyle\sum\limits_{k=0}^\infty \frac{(-1)^{k}}{(2k!)}x^{2k}$$cos(x) 급수 전개cos(x) = 1 − x²/

  12. C 언어로 구현하는 이항 계수 테이블 출력 프로그램

    양의 정수 값(예: val)이 하나 주어졌을 때, 0부터 val 사이의 임의의 n과 k에 대해 이항 계수 B(n, k)의 값을 계산하고 그 결과를 표 형태로 출력하는 것이 이번 글의 목표입니다. 이항 계수란 무엇인가? 이항 계수 (n, k)는 주어진 n개의 대상 가운데 k개를 선택하는 경우의 수를 의미합니다. n과 k가 양수일 때 이항 계수의 값은 아래 공식으로 구할 수 있습니다. $$C_k^n=\frac{n!}{(n-k)!k!}$$ 단, n ≥ k 여야 합니다. 계산 예시 입력: B(9,2) 출력: $$B_2^9=\frac{9!

  13. C 프로그램으로 평행사변형의 둘레 계산하기

    평행사변형이란?평행사변형은 사각형의 한 종류로, 다음과 같은 기하학적 성질을 가집니다.마주 보는 두 변이 서로 평행하다마주 보는 두 각의 크기가 서로 같다두 대각선이 서로를 이등분한다아래 그림에서 a와 b는 평행사변형을 이루는 변을 나타내며, 서로 평행한 변끼리 짝을 이루고 있습니다.평행사변형의 둘레는 다음과 같이 정의됩니다.평행사변형의 둘레 = 2 × (a + b)               &nbs

  14. C 언어로 별표(*) 육각형 패턴 출력하기

    정수 n이 하나 주어졌을 때, 이를 이용해 육각형 모양의 패턴을 생성하고 화면에 출력하는 것이 이번 글의 목표입니다.예시입력: n = 5 출력:입력: n = 4 출력:문제 해결 접근 방식육각형 패턴을 한 번에 그리기는 어렵기 때문에, 패턴을 세 구역으로 나누어 단계별로 출력하는 방법을 사용합니다.사용자로부터 정수 n을 입력받습니다.전체 패턴을 윗부분(upper), 중간부분(middle), 아랫부분(lower)의 세 구역으로 나눕니다.윗부분 출력: 루프 변수 i를 0부터 n 미만까지 1씩 증가시키며 각 행을 출력합니다.중간부분 출력:

  15. C 언어로 이차 방정식의 근 구하기: 판별식을 활용한 완벽 가이드

    이번 튜토리얼에서는 C 언어를 사용하여 이차 방정식의 근(해)을 구하는 프로그램을 다룹니다.일반적인 이차 방정식은 다음과 같은 형태로 표현됩니다.ax² + bx + c = 0여기서 우리의 목표는 주어진 방정식의 두 근 x1과 x2를 찾는 것입니다.이차 방정식의 해법 원리이 문제는 결정론적(deterministic) 방법인 근의 공식을 사용하여 해결할 수 있습니다. 먼저 판별식 D를 계산합니다.D = √(b² − 4ac)그런 다음 판별식 값을 이용하여 두 근을 다음과 같이 구합니다.x1 = (−b + D) / 2ax2 = (−b −

  16. C 언어로 파일 삭제하기: remove() 함수 사용법 총정리

    프로그래밍에서 파일을 다루는 작업은 매우 중요하며, 모든 프로그래밍 언어는 파일을 조작할 수 있도록 자체적인 함수나 라이브러리를 제공합니다.C 언어 역시 프로그래머가 파일을 삭제할 수 있도록 remove()라는 함수를 제공합니다. 이 글에서는 remove() 함수의 문법, 매개변수, 반환값 그리고 실제 사용 예제까지 자세히 알아보겠습니다.C 언어의 remove() 함수란?remove() 함수는 지정된 이름의 파일을 삭제하는 데 사용되는 표준 라이브러리 함수입니다. 이 함수는 stdio.h 헤더 파일에 선언되어 있으며, 별도의 설치

  17. 부동 소수점 연산 없이 C 언어로 유리수 배열 이진 탐색 구현하기

    이 문제에서는 정렬된 유리수 배열이 주어지며, 부동 소수점 산술을 사용하지 않고 이진 탐색(Binary Search) 알고리즘을 이용해 주어진 원소를 찾아야 합니다. 유리수(Rational Number)란 p/q 형태로 표현되는 수를 말하며, 이때 p와 q는 모두 정수입니다. 예를 들어 ⅔, ⅕가 대표적인 유리수입니다. 이진 탐색은 배열의 중간 위치를 기준으로 탐색 범위를 절반씩 줄여가며 원소를 찾는 효율적인 탐색 기법입니다. 접근 방법 부동 소수점 연산이 허용되지 않는 상황에서 정렬된 유리수 배열을 이진 탐색하려면, 분자와 분모

  18. 재귀를 이용해 이진수를 그레이 코드로 변환하는 C++ 프로그램

    이진수(binary number)는 0과 1, 두 개의 비트만으로 표현되는 수입니다. 그레이 코드(Gray code)는 연속된 두 코드 값이 절대 한 비트 이상 차이 나지 않는다는 독특한 성질을 가진 특수한 형태의 이진수입니다. 즉, 인접한 두 값 사이에는 항상 정확히 한 비트만 변화합니다. 이러한 특성 덕분에 그레이 코드는 카르노 맵(K-map), 오류 정정, 디지털 통신 등 다양한 분야에서 널리 활용됩니다. 따라서 이진수를 그레이 코드로 변환하는 작업은 매우 중요합니다. 이번 글에서는 재귀(recursion)를 이용해 이진수를

  19. C/C++로 구현하는 다익스트라(Dijkstra) 최단 경로 알고리즘

    시작 정점(source vertex)이 하나 주어진 그래프가 있을 때, 우리는 이 시작 정점으로부터 그래프의 나머지 모든 정점까지의 최단 경로를 찾아야 합니다. 다익스트라(Dijkstra) 알고리즘은 시작 정점에서 그래프 내 다른 모든 정점(노드)까지의 최단 경로를 구하는 대표적인 탐욕(Greedy) 알고리즘입니다. 이 알고리즘은 매 반복마다 아직 방문하지 않은 정점 중 시작점에 가장 가까운 정점을 하나씩 선택해 나가는 방식으로 동작합니다. 알고리즘 동작 단계 단계 1 : 최단 경로 트리(shortest path tree)에 포함될

  20. C 언어로 풀는 동전 교환(Coin Change) 문제 – 동적 계획법으로 조합의 수 구하기

    이 글에서는 동전 교환(Coin Change) 문제를 C 언어와 동적 계획법(Dynamic Programming)으로 해결하는 방법을 알아봅니다.문제 정의금액 n이 주어졌을 때, 가치가 서로 다른 m개의 동전을 사용하여 정확히 n원을 만드는 모든 조합의 개수를 구하는 것이 목표입니다. 단, 동전의 순서만 다른 경우는 같은 조합으로 간주합니다.예시입력 : N = 6 ; coins = {1, 2, 4} 출력 : 6 설명 : 합이 6이 되는 전체 조합은 다음과 같습니다. {1,1,1,1,1,1} ; {1,1,1,1,2} ; {1,1,2,

Total 1443 -컴퓨터  FirstPage PreviousPage NextPage LastPage CurrentPage:41/73  20-컴퓨터/Page Goto:1 35 36 37 38 39 40 41 42 43 44 45 46 47