[혼공컴운] Chapter 01 ~ 03

Chapter 01 | 컴퓨터 구조 시작하기 컴퓨터 구조를 알아야 하는 이유 컴퓨터 구조를 이해하면 문제 해결 능력이 향상됨 성능, 용량, 비용을 고려하며 개발할 수 있음 컴퓨터 구조의 큰 그림 우리가 알아야 하는 컴퓨터 구조 지식 : 컴퓨터가 이해하는 정보 + 컴퓨터의 네 가지 핵심 부품 컴퓨터가 이해하는 정보 : 0과 1로...

2025년 8월 17일
·
0개의 댓글
·

생성자, 소멸자 및 대입 연산자

C++가 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자 컴파일러가 선언해 주는 함수 기본 생성자 소멸자 복사 생성자 복사 대입 연산자 참조자를 데이터 멤버로 갖고 있는 클래스에 대입 연산을 지원하기 위해서는 직접 복사 대입 연산자를 정의해 주어야 함 데이터 멤버가 상수 객체인 경우에도 C++ 컴파일러가 비슷하게 동작함 상수 멤버를 수정하는 것은 ...

2024년 12월 19일
·
0개의 댓글
·

예외 명세

예외를 방출하지 않을 함수는 noexcept로 선언하라 noexcept 해당 함수가 예외를 방출하지 않을 것임을 명시하는 키워드 해당 키워드를 사용하면 컴파일러가 더 나은 목적 코드를 산출할 수 있음 C++98에서는 예외 명세가 위반되면 호출 스택이 f를 호출한 지점에 도달할 때까지 풀리며 그 지점에서 몇 가지 동작이 취해진 후 프로그램 실행이 종료됨 C...

2024년 12월 18일
·
0개의 댓글
·

const_iterator

iterator 보다 const_iterator를 선호하라 const_iterator const를 가리키는 포인터의 STL 버전 수정하면 안 되는 값을 가리킴 추가학습 begin, end, rbegin 등의 비멤버 함수를 멤버 함수보다 선호하라 C++에서 begin과 end 같은 비멤버 함수 버전을 멤버 함수보다 선호하는 것은 주로 코드의 일관성, 유연성...

2024년 12월 18일
·
0개의 댓글
·

const

낌새만 보이면 const를 들이대 보자 const 어떤 값이 불변이어야 하는 제작자의 의도를 컴파일러 및 다른 프로그래머와 나눌 수 있는 수단 const 키워드가 * 보다 왼쪽에 있으면 포인터가 가리키는 대상이 상수임 * 보다 오른쪽에 있으면 포인터 자체가 상수임 포인터가 가리키는 대상을 상수로 만들 때 두 가지 방법이 있지만 의미적인 차이는 전혀 없음...

2024년 12월 16일
·
0개의 댓글
·

#define, const, enum, inline

#define을 쓰려거든 const, enum, inline을 떠올리자 선행 처리자보다 컴파일러를 더 가까이 하자 #define #define을 사용하면 소스 코드가 컴파일러로 넘어가기 전에 선행 처리자가 기호식 이름을 숫자 상수로 변경함 (사용한 만큼 사본 생성) -> ASPECT_RATIO는 컴파일러가 쓰는 기호 테이블에 들어가지 않기 때문에 디버깅...

2024년 12월 13일
·
0개의 댓글
·

비공개 함수, 삭제된 함수, override

정의되지 않은 비공개 함수보다 삭제된 함수를 선호하라 개발자가 특정 함수를 호출하지 못하게 하려면 함수를 선언하지 않는 것이 가장 간단함 하지만 C++이 필요에 따라 자동으로 생성하는 함수는 같은 방법으로 해결할 수 없음 C++98에서는 해당 함수의 접근 지정자를 private으로 변경하여 호출을 방지했음 -> 비공개 함수 C++11에서는 함수의 선언 끝...

2024년 12월 11일
·
0개의 댓글
·

typedef, using, enum

typedef보다 별칭 선언을 선호하라 typedef, 별칭 선언(alias declaration) |기능|typedef|using| |-|:-:|:-:| |사용자 정의 타입에 새로운 이름 부여|O|O| |별칭 템플릿 가능|X|O| 범위 없는 enum보다 범위 있는 enum을 선호하라 범위 없는 enum 일반적으로 중괄호 쌍 안에서 어떤 이름을 선언하면 ...

2024년 12월 10일
·
0개의 댓글
·

0, NULL, nullptr

0과 NULL보다 nullptr을 선호하라 0 리터럴 0은 int이지 포인터가 아님 포인터만 사용할 수 있는 위치에 0이 있으면 마지못해 nullptr로 해석하긴 하지만 최후의 수단일 뿐임 NULL NULL도 포인터 형식이 아님 nullptr 정수도 포인터 형식도 아님 std::nullptr_t인데 이는 모든 raw pointer 형식으로 암묵적 변환됨...

2024년 12월 8일
·
0개의 댓글
·

Uniform Initialization

객체 생성 시 괄호와 중괄호를 구분하라 uniform initialization C++은 초기화 할 때 =, (), {}를 지원함 그 중에서 어디서나 사용할 수 있는 것이 중괄호 구문임 (장점) =, ()와 달리 암묵적 좁히기 변환(narrowing conversion)을 방지해 줌 (단점) 종종 예상치 못한 행동을 보임 (예) std::initialize...

2024년 12월 5일
·
0개의 댓글
·

형식 연역

형식 연역이란? 컴파일러가 변수나 함수의 타입을 자동으로 추론하는 과정 함수 템플릿 호출 지점, auto, decltype 표현식 등에서 발생함 템플릿 형식 연역 규칙 컴파일러는 expr를 이용하여 T와 paramType을 연역함 (경우 1) paramType이 포인터 또는 참조 형식이지만 보편 참조는 아닌 경우 규칙...

2024년 11월 11일
·
0개의 댓글
·

정규 표현식

정규 표현식 문자열에서 패턴을 찾을 때 사용함 정규 표현식을 통해 문자열이 주어진 규칙에 맞는지 확인할 수 있음 db-숫자-log.txt 형태인지 확인하기 실행 결과

2024년 11월 4일
·
0개의 댓글
·

행렬의 곱셈

문제 설명 2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요. 제한 조건 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다. 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다. 곱할 수 있는 배열만 주어집니다. 풀이

2024년 9월 5일
·
0개의 댓글
·

n^2 배열 자르기

문제 설명 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부터 i행 i열까지의 영역 내의 모든 빈 칸을 숫자 i로 채웁니다. 1행, 2행, ..., n행을 잘라내어 모두 이...

2024년 9월 5일
·
0개의 댓글
·

할인 행사

문제 설명 XYZ 마트는 일정한 금액을 지불하면 10일 동안 회원 자격을 부여합니다. XYZ 마트에서는 회원을 대상으로 매일 한 가지 제품을 할인하는 행사를 합니다. 할인하는 제품은 하루에 하나씩만 구매할 수 있습니다. 알뜰한 정현이는 자신이 원하는 제품과 수량이 할인하는 날짜와 10일 연속으로 일치할 경우에 맞춰서 회원가입을 하려 합니다. 예를 들어, ...

2024년 9월 2일
·
0개의 댓글
·

괄호 회전하기

문제 설명 다음 규칙을 지키는 문자열을 올바른 괄호 문자열이라고 정의합니다. (), [], {} 는 모두 올바른 괄호 문자열입니다. 만약 A가 올바른 괄호 문자열이라면, (A), [A], {A} 도 올바른 괄호 문자열입니다. 예를 들어, [] 가 올바른 괄호 문자열이므로, ([]) 도 올바른 괄호 문자열입니다. 만약 A, B가 올바른 괄호 문자열이라면, ...

2024년 9월 2일
·
0개의 댓글
·

연속 부분 수열 합의 개수

문제 설명 철호는 수열을 가지고 놀기 좋아합니다. 어느 날 철호는 어떤 자연수로 이루어진 원형 수열의 연속하는 부분 수열의 합으로 만들 수 있는 수가 모두 몇 가지인지 알아보고 싶어졌습니다. 원형 수열이란 일반적인 수열에서 처음과 끝이 연결된 형태의 수열을 말합니다. 예를 들어 수열 [7, 9, 1, 1, 4] 로 원형 수열을 만들면 다음과 같습니다. 그림...

2024년 9월 2일
·
0개의 댓글
·

귤 고르기

문제 설명 경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화하고 싶습니다. 예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3...

2024년 9월 2일
·
0개의 댓글
·

예상 대진표

문제 설명 △△ 게임대회가 개최되었습니다. 이 대회는 N명이 참가하고, 토너먼트 형식으로 진행됩니다. N명의 참가자는 각각 1부터 N번을 차례대로 배정받습니다. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N번의 참가자끼리 게임을 진행합니다. 각 게임에서 이긴 사람은 다음 라운드에 진출할 수 있습니다. 이때, 다음 라운드에 진출할 참가자의 번호는 ...

2024년 9월 2일
·
0개의 댓글
·

영어 끝말잇기

문제 설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 이전에 등장했던 단어는 사용...

2024년 9월 1일
·
0개의 댓글
·