c++ 11

[C++] 프로그래머스 - 크기가 작은 부분 문자열

https://school.programmers.co.kr/learn/courses/30/lessons/147355 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [소스 코드] // 23.06.23 #include #include using namespace std; int solution(string t, string p) { int answer = 0; for(int i=0;i

[C++] 프로그래머스 - 과제 진행하기

https://school.programmers.co.kr/learn/courses/30/lessons/176962 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [소스 코드] //23.06.22 #include #include #include using namespace std; bool compare(vector a, vector b) { return a[1] < b[1]; } vector solution(vector plans) { vector answer; vector waitTesk; sort(plans.begin(), plans.end(), c..

[C++] 프로그래머스 - 공원 산책

https://school.programmers.co.kr/learn/courses/30/lessons/172928 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [소스 코드] // 23.06.12 // https://sirius7.tistory.com/ #include #include using namespace std; vector solution(vector park, vector routes) { vector answer; for(int i=0;i

[C에서 C++로 넘어가기] - 8. map, unordered_map

C++에서 사용가능한 컨테이너인 map에 대해서 소개하겠습니다. 컨테이너가 무엇인지에 대해서는 아래 게시글에 설명이 있으니 참고해 주세요 https://sirius7.tistory.com/91 [C에서 C++로 넘어가기] - 6. vector C++에서는 C언어 보다 배열을 더 편하게 다룰 수 있는 방법이 존재합니다. 메모리 할당 등 여러 측면에서 편하게 사용할 수 있는 vector에 대해 알아보겠습니다. vector란? vector는 시퀀스 컨테이너로, sirius7.tistory.com map이란? map은 #include 헤더를 선언한 후 사용 가능하며, 쌍으로 이루어진 자료구조의 하나입니다. map의 특징을 정리하면 다음과 같습니다. key를 first로, value를 second로 저장 key ..

[C에서 C++로 넘어가기] - 6. vector

C++에서는 C언어 보다 배열을 더 편하게 다룰 수 있는 방법이 존재합니다. 메모리 할당 등 여러 측면에서 편하게 사용할 수 있는 vector에 대해 알아보겠습니다. vector란? vector는 시퀀스 컨테이너로, C언어의 배열과 같은 동적 배열입니다. C언어의 배열과 달리, 객체를 삽입하거나 제거할 때 자동으로 자신의 크기를 조정하는 능력이 있습니다. vector의 이해를 위해, 시퀀스 컨테이너의 개념과 크기 조정에 대해 나누어 하나씩 설명해 보겠습니다. 컨테이너(container) 먼저, 시퀀스 컨테이너라는 개념에 대해 간단히 살펴보겠습니다. STL에서 컨테이너(container)는 같은 타입의 여러 객체를 저장하는 일종의 집합이라고 할 수 있습니다. 컨테이너는 아래와 같이 크게 3가지로 분류됩니다..

[C++] 백준 2108번 - 통계학

https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net [소스코드] #include #include #include using namespace std; // [baekjoon] 2108번 - 통계학 // 2023.01.22 int arr[800001] = { -5000 }; int main(void) { cin.tie(NULL); ios::sync_with_stdio(false); int n; cin >> n; int sum = 0; int cntNumArr[80..

[C/C++] 카운팅 정렬 (Counting Sort)

카운팅 정렬 (Counting Sort) 카운팅 정렬 (Counting Sort)은 정렬할 수의 범위가 작은 경우 사용하는 정렬으로, 시간 복잡도가 O(n)인 매우 빠른 정렬입니다. 단점은 수의 범위가 커지면 사용하는 메모리도 그만큼 커진다는 단점이 있습니다. (이때문에 수의 범위가 작은 경우에 사용) 작동 원리 카운팅 정렬의 원리는 간단합니다. 정렬할 원소를 하나씩 살펴보고, 그 원소 값에 해당하는 배열에 카운트를 1 늘려주면 됩니다. 카운팅 정렬이 작동하는 방식을 GIF로 만들어 보았습니다. 위의 그림에서는 배열의 크기가 10,000개나 되지만, 실제 입력 값의 최대 크기는 7이므로 그만큼 크기를 줄여도 작동합니다. 반대로, 입력값에 100,000,005 같이 큰 수가 나온다면, 그만큼 배열이 커져야..

[C에서 C++로 넘어가기] - 5. 정렬하기 : sort

C++에서는 쉬운 정렬을 위해 sort함수가 지원됩니다. C언어에서도 stdlib.h 헤더파일을 선언하여 qsort()를 사용할 수 있지만, C++의 sort() 함수는 이와는 조금 다릅니다. sort C++에서 sort()함수는 헤더파일을 추가한 다음 사용할 수 있습니다. 이 sort 정렬 함수는 최악의 경우에도 O(nlogn)의 시간 복잡도를 가지는 intro sort 정렬 알고리즘을 이용합니다. intro sort 알고리즘은 quick 정렬 알고리즘을 기반으로, heap sort와 insertion sort를 혼합해 만든 알고리즘이라고 합니다. quick 정렬의 경우는 최악의 경우 O(n^2) 시간복잡도를 가지므로, 더 빠르게 사용할 수 있다는 장점이 있네요. sort 함수의 사용방법을 알아보겠습니..

[C에서 C++로 넘어가기] - 4. 문자열 입력받기 : String

C++은 C와 비교해서 더 편리한 기능을 많이 지원하는데, 그 중 하나가 바로 문자열입니다. char*, char[] 로 문자열을 입력받는 C와는 달리 C++에서는 문자열을 더 쉽게 다룰 수 있습니다. string string은 C++ STL에서 제공하는 클래스로, 문자열을 다루는 클래스입니다. ( 클래스에 대한 설명은 이전 게시글을 참고해주세요! ) string의 특징을 간단하게 정리하면 다음과 같습니다. 문자열 끝에 null문자(‘\0’) 등이 포함되지 않는다. 문자열의 길이를 동적으로 변경 가능하다. 마치 배열처럼 한 문자씩 다룰 수 있다. 사용을 위해서는 string 헤더파일을 선언해야 한다. ( #include ) , ==, + 등과 같은 연산자들을 사용할 수 있다. 문자열 비교 (, ==) :..

[C에서 C++로 넘어가기] - 2. class

앞선 게시글에서 이야기한 것처럼, C++이란 C언어에 Class가 추가된 언어입니다. 이번 게시글에서는 Class가 무엇인지 살펴보겠습니다. class란? 클래스(class)의 정의는 " 특정한 용도를 수행하기 위한 변수와 함수를 모아 둔 틀 " 입니다. 언뜻 보면 클래스라는 게 C언어의 구조체(struct)와 비슷해 보입니다. 자세히 살펴보면, C언어의 구조체(struct) / C++의 구조체(struct) / C++의 클래스(class) 셋은 조금씩 다릅니다. 먼저 C++의 구조체가 C언어의 구조체와 다른 점은 다음과 같습니다. 함수를 구조체 멤버로 사용할 수 있다. typedef를 따로 선언하지 않아도, struct 키워드를 생략할 수 있다. 접근 제어자, 상속, 생성자, 소멸자도 선언가능하다. C..