본문 바로가기
반응형

전체 글97

C언어 char 타입과 ASCII 코드 완벽 이해 - 전체 아스키 코드 표, 대소문자 변환 C언어에서 char 타입은 문자를 다룰 때 기본적으로 사용됩니다. 하지만 이 타입의 진정한 매력은 문자와 숫자(ASCII 코드)를 모두 다룰 수 있다는 점에 있습니다. 이번 포스팅에서는 char 타입의 개념과 ASCII 코드에 대해 심층적으로 알아보겠습니다.  1. char 타입의 기본 개념char는 1바이트(8비트) 크기의 데이터 타입으로, 주로 문자(character)를 표현하는 데 사용됩니다. 하지만 내부적으로는 정수형 데이터로 저장되며, 문자에 매핑된 숫자 값(즉, ASCII 코드)으로 동작합니다.char의 주요 특징메모리 크기: 1바이트 (8비트)값의 범위:signed char: -128 ~ 127unsigned char: 0 ~ 255용도: 문자 저장 및 처리, 정수형 연산 가능 2. ASCI.. 2024. 12. 21.
C 언어의 모든 데이터 타입: 범위, 메모리 크기, 개념 완벽 정리 C 언어는 다양한 데이터 타입을 제공하여 효율적이고 유연한 프로그래밍을 가능하게 합니다. 이번 포스팅에서는 C 언어의 주요 데이터 타입 중 정수형, 실수형, 문자형 데이터 타입의 개념, 메모리 크기, 값의 범위를 이진수를 활용하여 설명하겠습니다. 1. 정수형 데이터 타입정수형 데이터 타입은 숫자를 정수로 저장하는 데 사용됩니다. 부호 있는 타입과 부호 없는 타입이 있으며, 각각의 범위는 비트(bit) 수에 따라 결정됩니다.정수형 데이터 타입 표타입메모리 크기(byte)범위설명char1-128 ~ 127 또는 0 ~ 255문자 저장, ASCII 사용short2-32,768 ~ 32,767작은 정수 저장int4-2,147,483,648 ~ 2,147,483,647기본 정수형long4 또는 8플랫폼에 따라 다.. 2024. 12. 21.
메모이제이션을 통한 성능개선 (3) - DFS DFS(Depth First Search)는 그래프 탐색 및 다양한 문제를 해결하는 데 널리 사용되는 알고리즘입니다. 이 알고리즘에 메모이제이션(Memoization)을 활용하면 중복 계산을 제거하고 효율성을 극대화할 수 있습니다. 이번 포스팅에서는 DFS와 메모이제이션의 결합 아이디어를 설명하고, C, Java, Python 예제 코드와 함께 성능 비교를 통해 차이를 분석하겠습니다.1. DFS와 메모이제이션이란?DFS (Depth First Search)깊이 우선 탐색으로, 그래프의 한 경로를 끝까지 탐색한 뒤 다른 경로를 탐색합니다.백트래킹과 결합하여 다양한 문제를 해결할 수 있습니다.메모이제이션계산한 값을 저장하여 동일한 계산을 반복하지 않도록 하는 기술입니다.DFS와 결합하면 중복된 상태를 다시 .. 2024. 12. 21.
메모이제이션(Memoization) 적용을 통한 성능 개선 (2) - 백트래킹 백트래킹(Backtracking)은 문제를 해결하기 위해 모든 가능한 경우를 탐색하되 가지치기를 통해 확인할 필요가 없는 경우는 생략하는 기법입니다. 하지만, 중복된 계산이 많아질 경우 성능 문제가 발생할 수 있습니다. 이런 문제를 해결하기 위해 메모이제이션(Memoization)을 적용하면 효율을 크게 향상시킬 수 있습니다. 이번 글에서는 백트래킹과 메모이제이션을 결합하는 방법을 설명하고, C언어, Java, Python으로 구현한 예제 코드를 통해 두 접근법의 차이를 비교해 보겠습니다. 1. 백트래킹과 메모이제이션이란?백트래킹가능한 모든 경우를 재귀적으로 탐색하며 해를 찾는 알고리즘입니다.조건에 맞지 않는 경로는 빠르게 포기(가지치기, Pruning)하여 탐색을 줄이는 방식으로 동작합니다.메모이제이션.. 2024. 12. 21.
메모이제이션(Memoization) 적용을 통한 성능 개선 (1) - 브루트포스 프로그래밍 문제를 해결하는 데 있어 브루트포스(완전 탐색)는 간단하면서도 강력한 접근 방식입니다. 하지만 입력 크기가 커지면 성능 문제가 발생하기 마련입니다. 이를 해결하기 위해 메모이제이션(Memoization)이라는 기술을 적용하면 효율성을 극대화할 수 있습니다. 이번 글에서는 브루트포스와 메모이제이션의 차이를 살펴보고, C언어, Java, Python으로 각각 메모이제이션을 적용한 예제를 통해 메모이제이션의 강력함을 확인하겠습니다. 1. 브루트포스와 메모이제이션이란?브루트포스(완전 탐색)가능한 모든 경우를 탐색하며 답을 찾는 방식입니다.단순하지만, 경우의 수가 많아지면 계산량이 폭발적으로 증가합니다.메모이제이션한 번 계산한 결과를 저장해둠으로써 동일한 계산을 반복하지 않도록 하는 기법입니다.중복 계.. 2024. 12. 21.
반응형