코딩 모닥불
  • 메뉴 닫기
  • 글작성
  • 방명록
  • 환경설정
    • 분류 전체보기
      • C++
      • 표준 라이브러리
      • 백준(BOJ)
  • 홈
  • 태그
  • 방명록
백준(BOJ)

[백준/C++] 18258번: 큐 2 ( queue 자료 구조 사용하기 )

문제 설명 ● 문제 링크: http://www.acmicpc.net/problem/18258 풀이문제에서는 큐(queue)를 구현해서 문제를 풀라고 되어있지만, std::queue 클래스를 사용해서 문제를 풀었습니다. 그렇기 때문에, 입력된 문자열을 읽어서, 그 문자열에 따라 std:: queue 클래스의 각 기능을 사용하면 간단히 처리됩니다. 큐(queue)는 맨 먼저 입력된 데이터가 먼저 출력되어야 하는 FIFO( First Input First Out ) 구조로서, 저장하고 있는 자료에 제한된 접근 기능을 가지는 자료 구조입니다. 이 자료 구조는 입력된 순서대로 처리하는 것이 중요한 기능을 구현할 때 많이 고려됩니다.예를 들면, 프린트의 출력이나, 프로세스 관리 등이 있습니다. 그리고, C+..

2025. 4. 16.
백준(BOJ)

[백준/C++] 28278번: 스택 2 ( stack 자료구조 사용하기 )

문제 설명 ● 문제 링크: http://www.acmicpc.net/problem/28278 풀이문제에서는 스택( stack )을 구현해서 문제를 풀라고 되어있지만, std::stack 클래스를 사용해서 문제를 풀었습니다.그렇기 때문에, 입력된 숫자를 읽어서 그 숫자에 따라 std::stack 클래스의 각 기능을 사용하면 간단히 처리됩니다. 스택( stack )은 맨 나중에 입력된 데이터가 먼저 출력되어야 하는 LIFO (Last Input First Out) 구조로서, 자료 접근에 제한된 기능만을 제공하는 특징의 자료 구조입니다.그리고, C++ 표준 라이브러리는, 이러한 스택 기능을 자유로이 사용할 수 있도록, 템플릿 형식의 std::stack 클래스를 지원합니다. 이런 구조는 예전 상태로 돌아가는..

2025. 4. 16.
백준(BOJ)

[백준/C++] 17103번: 골드바흐 파티션( 에라토스테네스의 체 사용법 )

문제 설명 ● 문제 링크: http://www.acmicpc.net/problem/17103 풀이이 문제는 짝수 N보다 작은 소수들을 구하고 작은 소수들 중 더했을 때 N이 되는 두 소수쌍 (골드바흐 파티션)의 개수를 구하는 문제입니다. 이때, 두 소수쌍의 순서는 무시합니다. 예를 들어, 짝수 8이 주어지면, 이 값보다 작은 소수들은 2, 3, 5, 7이 있습니다. 이 중에 더했을 때 8이 되는 두 소수가 존재한다는 것이 골드바흐의 추측이고, 실제로 3과 5가 골드바흐 파티션이 된다. 문제에서는 {3,5} 쌍을 카운트했으면 {5,3}은 같은 것으로 보기 때문에 카운트해서는 안된다. 그래서 이때의 정답은 1이 됩니다.이 문제는 "에라토스테네스의 체"라는 알고리즘을 사용합니다. 이것은 주어진 수 N보다 ..

2025. 4. 15.
백준(BOJ)

[백준/C++] 4134번: 다음 소수( 주어진 수에 가장 가까운 소수 찾기 )

문제 설명 ● 문제 링크: http://www.acmicpc.net/problem/4134 풀이주어지는 정수들의 개수를 알려주고, 다음 줄부터 주어지는 정수보다 크거나 같은 소수를 찾는 문제이다. 주의할 점은 주어지는 정수의 범위가 꽤 크다는 것이다. ( 0 ≤ N ≤ $4*10^9$ ) 그래서 나중에 여러 번 손이 가지 않도록 아예 데이터 타입을 정의하고 시작했다. 만약 입력 값의 범위가 달라진다면 아래의 정의만 변경하면 되므로 편리하다.using LTYPE = unsigned long; // 타입의 별명 정의 다음은 입력된 숫자 num에 가장 가까운 소수를 구하는 함수입니다.LTYPE findNearestPrime( LTYPE num){ while(true){ ..

2025. 4. 14.
백준(BOJ)

[백준/C++] 1181번: 단어 정렬

문제 설명 ● 문제 링크: https://www.acmicpc.net/problem/1181 풀이단어들을 입력받아 주어진 2개의 조건에 따라 정렬하는 문제이다. 길이가 짧은 단어부터길이가 같으면 사전 순으로단, 출력 시 같은 단어는 무시한다.이 글에선 std::string 개체를 이용해서 처리합니다.그리고, 정렬 알고리즘이 필요하기 때문에, C++ 표준 라이브러리의 std::sort 함수를 사용했습니다. [C++] 배열, 컨테이터, 사용자 정의 데이터를 정렬하기 위한 std::sortstd::sort의 정의와 기초 사용법std::sort는 지정된 범위에 있는 데이터 요소를 기본적인 오름차순 또는 지정한 정렬 기준에 따라 정렬하는 함수입니다.이 함수를 사용하기 위해서는 우선 다음과 같codingbon..

2025. 4. 14.
백준(BOJ)

[백준/C++] 2581번: 소수

문제 설명 ● 문제 링크: http://www.acmicpc.net/problem/2581 풀이정의를 보면 소수는 1보다 큰 자연수 중 1과 자기 자신만을 약수로 가지는 수입니다. 이 정의에 따라 소수를 구하는 함수를 만들고, 메인 함수에서 M부터 N까지 루프를 거치면서 소수면 총합에 더하고, 현재 가장 작은 소수보다 더 작으면 최소 소수를 갱신하면 되는 문제입니다. 그런데 작은 수부터 소수 검사를 하면 최소 소수를 찾기 위해 비교하는 코드가 필요하므로 큰 수부터 검사하는 게 유리합니다.int main() { int M, N; cin >> M >> N; int sum = 0; int min = -1; for(int i = N; i >= M; i--){ if ( isPrime(i)){ //..

2025. 4. 14.
C++

[C++] 표현식의 좌측값( lvalue )과 우측값( rvalue )

표현식의 범주( category )표현식이란 리터럴( literal ), 변수( variable ), 연산자( operator ) 그리고 함수 호출( function call )의 연속된 식이라고 할 수 있습니다.int add( int a, int b){ return a + b;}int main(){ int var{ 3 }; int A = 3; // 3은 리터럴 int B = var; // var는 변수 int C = add( 2, 5 ); // 함수 int D = var + 4; // 연산자}그리고, C++은 이러한 표현식을 두 가지 범주, 좌측값과 우측값으로 나눕니다. ● 먼저, 좌측값( lvalue )은 메..

2025. 4. 13.
C++

[C++] 컴파일러가 자동으로 생성하는 멤버 함수들

클래스의 특수 멤버 함수들( special member functions )컴파일러가 자동으로 작성하는 특수 멤버 함수는 모두 6개로, 구체적으로는 기본 생성자( default constructor ), 소멸자( destructor ), 복사 생성자( copy constructor ), 복사 대입 연산자( copy assignment operator ), 이동 생성자( move constructor ), 이동 대입 연산자( move assignment operator )가 그것들입니다. 이 글에서는, 이 멤버 함수들이 생성되는 데는 필요한 조건과, 그 조건이 생기게 된 이유를 정리합니다. 먼저, 이 특수 멤버 함수들이 자동으로 작성되는 가장 기본적인 조건은, 클래스 내에 명시적인 멤버 함수가 이미 구현되..

2025. 4. 11.
표준 라이브러리

[C++] shared_ptr 클래스를 지원하기 위한 std::weak_ptr

std::weak_ptrstd::shared_ptr은 편리한 스마트 포인터( smart pointer )입니다. 그렇지만, 순환 참조( circular reference )의 문제를 자체적으로 해결하지 못하는 구조적인 약점이 있습니다.그래서, 외부에서 도움을 받기 위해 만들어진 클래스가 std::weak_ptr입니다.따라서, 이 글을 읽기 전에, shared_ptr에 관한 글을 먼저 읽는 것을 추천합니다. [C++] 자원을 공유하는 std::shared_ptr 객체std::shared_ptrstd::shared_ptr은 할당된 메모리를 자동으로 관리할 목적으로 C++ 11에 도입된 유틸리티 클래스입니다. 이 클래스를 사용하기 위해선 다음의 헤더 파일을 포함해야 합니다.#include 다음은codingbo..

2025. 4. 10.
표준 라이브러리

[C++] 자원을 공유하는 std::shared_ptr 객체

std::shared_ptrstd::shared_ptr은 할당된 메모리를 자동으로 관리할 목적으로 C++ 11에 도입된 유틸리티 클래스입니다. 이 클래스를 사용하기 위해선 다음의 헤더 파일을 포함해야 합니다.#include 다음은 shared_ptr의 기본 사용법입니다.#include #include #define SIZE 100class ResourceObj{ // 자원 클래스 int* m_pData;public: ResourceObj(){ m_pData = new int[SIZE]; std::cout ptr { new ResourceObj() }; // shared_ptr}▼출력Resource CreatedResource Destory위의 shared_pt..

2025. 4. 9.
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • ···
  • 11
  • »

전체 카테고리

  • 분류 전체보기
    • C++
    • 표준 라이브러리
    • 백준(BOJ)

블로그 인기글

태그

  • #namespace
  • #상수 표현식
  • #Enum
  • #auto
  • #static_cast
  • #깊이 우선 탐색
  • #std::sort
  • #Lamda
  • #예외 처리
  • #동적 계획법
  • #std::vector
  • #std::stack
  • #std::unique_ptr
  • #decltype
  • #복사 생성자
  • #포인터
  • #const
  • #using
  • #전방 선언
  • #함수 객체
  • #이진 탐색
  • #전처리기
  • #constexpr
  • #초기화
  • #std::string_view
  • #inline
  • #std::queue
  • #소멸자
  • #범위 기반 for
  • #헤더 가드
MORE
애드센스 광고 영역
Powered by Privatenote Copyright © 코딩 모닥불 All rights reserved. TistoryWhaleSkin3.4

티스토리툴바