목록전체 글 (59)
이우의 개발일지
백준 10828번 스택https://www.acmicpc.net/problem/10828 백준 코드 #include #include #include#include using namespace std;int main() { int N; cin >> N; string input; string push = "push", top = "top", pop = "pop", size = "size", empty = "empty"; stack v; for (int i = 0; i > input; if (input == push) { int t; cin >> t; v.push(t); } els..
문제 1316https://www.acmicpc.net/problem/1316 문제 코드 #includeusing namespace std;#includeint main(){ int num, cnt = 0; cin >> num; for (int i = 0; i > str; int check = 0; for (int j = 0; j 구현 문제 중 그룹단어체커는 어려운 문제는 아니다.다만 연속된 단어 이외에 aba 처럼 연속되지 않은 단어가 중복되서 나오는 것을 체크하는 것이 중요하다. if (str[j] != str[j + 1] && str.substr(j + 1).find(str[j]) != std::string::npos) { check = 1; ..
C++ map이란?map은 Key-Value의 관계이다. 중복 허용 XC++의 map 내부 구현은 검색, 삽입, 삭제가 O(logn)인 레드블랙트리로 구성 #include #include int main() { std::map m1{ {"kim", 20}, {"Lee", 21} }; std::cout map 구성 방법 std::map m1{ {"kim", 20}, {"Lee", 21} }; std::map 을 입력하면 됩니다.그 타입에 맞춰 안에 인자를 구성 {"kim", 20} 같이 구성하면 됩니다. map 데이터 삽입 방법 m1["park"] = 25; // 새로운 키를 추가하는 방법 // m1.insert(std::make_pair("park", 25)); 도 추가하는 방법 중 하나이..
stringsteam은 언제 사용해야할까? 프로그래머스 문제 중 가장 많이 받은 선물이란 문제가 있다.여기서 누가 누구에게 선물을 줬는지 입력을 받을 때 ["a b", "b a", "c a", "a c", "a c", "c a"] 이런식으로 "a b" 이면, a가 b에게 선물을 줬다. 라는 입력이다.이 입력을 처리할려면 a와 b를 따로 구분하는 코드를 짜야하는데, 이 역할을 stringstream이 해준다. for(int i = 0; i > from >> to; int fromIdx = m[from], toIdx = m[to]; count[fromIdx][toIdx]++; point[fromIdx]++; point[toIdx]--; } 위 코드를 ..
동적할당이란?동적 할당, 본래의 의미로는 동적 메모리 할당으로 사용자가 임의로 원하는 영역(Size) 만큼 메모리에 할당(Allocation)하는 기법을 말한다.지역적으로도, 전역적으로 접근이 가능하며 변동적(런타임 상황에 따라 변경이 됨)이기 때문에 메모리의 힙 영역에 적재된다. 동적할당을 이용한 문자열 복사하기 #include #include #include#include #include using namespace std;const int kMaxstr = 100; // 전역변수 설정 bool IsEqual(const char st1[], const char str2[]) { for (int i = 0; i 동적할당하는 방법 char *dynamic_char = new char[kMaxstr];이..
문자열 비교 함수 만들기내가 지정한 문자와 입력한 문자가 같으면 종료, 다르면 계속하는 함수 #include #include #include#include using namespace std;const int kMaxstr = 100; // 전역변수 설정 bool IsEqual(const char st1[], const char str2[]) { for (int i = 0; i > str2; if (IsEqual(str1, str2)) { cout ※주의할 점은 bool IsEqual 함수에서 if(st1[i] == str2[i])는 어차피 같으면 넘어가니깐, 굳이 안넣어줘도되는데 처음에 했을 때 안됐던 이유가else if (st1[i] == '\0') return true; else if (st..
포인터 정의 포인터는 C++ 프로그래밍의 핵심적인 부분으로, 변수의 메모리 주소를 저장하는 변수이다. 포인터를 이해하고 사용하는 것은 C++ 프로그래밍의 중요한 측면 중 하나이다.int a = 123;cout 포인터 변수에 *를 붙여줘야 그 주소값 안에 있는 값을 불러온다. 포인터 배열int arr[3] = {1,2,3};int *p = arr; // arr[0]을 가리키고 있는 상태배열의 이름은 이미 배열의 첫번째를 가르키는 포인터로 &를 안붙여줘도 사용할 수 있다.
보간법이란? 연속적 변수 가운데 어느 간격을 둔 두 개 이상의 값을 알고, 그것들을 만족시키는 어느 함수의 형을 정하며 그 사이의 변숫값에 대한 함수의 값을 구하는 근사 계산법. 즉, 우리가 주어진 값으로 임의의 값을 예측할 때 쓰는 방법을 보간법이라고 합니다. 가장 단순하게 알려진 것이 바로 '선형 보간법'인데요. 선형보간법이란? 선형 보간법(線型補間法, linear interpolation)은 끝점의 값이 주어졌을 때 그 사이에 위치한 값을 추정하기 위하여 직선 거리에 따라 선형적으로 계산하는 방법이다. 다항식 보간법이란? 2차 이상의 다항식을 보간법을 이용해서 찾는 것인데, (n+1)개의 점을 지나는 다항식은 n차 이하의 유일한 다항식으로 표시가 가능하다. 미정계수법 다항식을 찾아내는 가장 보편적인..