전체 글 보기
-
입출력 조작자, 포맷 함수C++ 2021. 7. 11. 02:44
입출력 조작자 (Manipulator)매개변수 없는 조작자: endl, hex, dec, showbase 등매개변수 있는 조작자: setw, setfill, setprecision 등 (iomanip 헤더 파일 필요)#include #include int main() { double pi = 3.141592; std::cout ** 소수점 자르기 **setprecision(n)은 가장 앞에서부터 유효한 숫자 n개를 자르는 메서드.fixed와 함께 써야 소수점 아래 자리수를 고정시킬 수 있음. 포맷 함수 (Format function)C의 printf, 파이썬의 f-string 같은 기능format 헤더 파일 필요 C++20부터 사용 가능 #include #include int main() {..
-
stoi() - string to intC++ 2021. 7. 6. 03:29
stoi()string형 숫자 -> int로 변환string 헤더 파일 필요 같은 방식으로 stof(string to float), stod(string to double) 등 사용 가능.#include #include int main(){ std::string str1 = "7", str2 = "10"; int result = stoi(str1) * stoi(str2); std::cout ** 세그 폴트 발생 주의! **stoi()의 인자 값에 문제가 있을 경우 segmentation fault가 발생하므로, 웬만하면 try-catch로 예외 처리해서 사용할 것.e.g. 숫자가 아닐 경우(invalid_argument), int 범위 밖일 경우(out_of_range) 등 그 외.- ..
-
멀티스레드 환경에서 vector 사용, pairC++ 2021. 7. 6. 03:22
vector동적 배열 컨테이너배열처럼 메모리 연속적으로 할당함#include std::vector v1; // 빈 벡터 생성std::vector v2(10); // 원소 10개 가진 벡터 생성 (0으로 초기화)std::vector v3(10, -1); // 원소 10개 모두 -1로 초기화한 벡터 생성std::vector v4 = {1, 2, 3}; // 원소 직접 초기화 ** 멀티스레드 환경에서 vector 사용하는 경우 **잘못된 인덱스 접근으로 세그 폴트 발생하는 걸 막기 위해 반드시!resize(n) 또는 resize(n, 초기 값)으로 사이즈 정해놓고 사용할 것! 그리고 push_back() 사용은 되도록 지양하자.계속 뒤에 붙이다가 기존 용량 초과하면 기존의 두 배 만큼 늘려서 재할당 하게 됨...
-
cin.ignore() - cin, getline 동시에 사용할 때C++ 2021. 7. 6. 03:20
cin.ignore()버퍼 비워주는 역할cin으로 정수 등을 입력 받고 난 후, getline()으로 또 입력 받는 경우에 사용.이때 cin.ignore()로 버퍼를 비워주지 않는 경우, cin 처리하고 남은 개행문자가 getline()에 들어가게 된다.#include #include int main() { std::string s; int n; // 입력 값이 차례대로 5\n10\n20일 때. // 정수형 변수 n에는 입력한 숫자만 저장되고, \n은 버퍼에 그대로 남음 std::cin >> n; std::cout > n; std::cout 테스트 프로그램 작성 시, 루프 도는 과정에서 잘못 들어 온 입력을 처리할 때 사용할 수도 있다.std::cin.clear()..
-
stackC++ 2021. 6. 1. 23:23
Stack (STL) LIFO (Last In First Out) : 마지막에 들어간 데이터가 가장 먼저 나옴 stack 헤더파일 불러오기 #include 빈 stack 생성 stack name; e.g. stack s; 데이터 들어있는 stack 생성 stack s({ 1,2,3 }); size() - stack 내 원소 수 반환 n = s.size(); top() - 맨 위에 있는 원소 반환 n += s.top(); pop() - 맨 위에 있는 원소 삭제 s.pop(); push(x) - stack의 맨 위에 x 추가 s.push(1); s.push(x); empty() - stack이 비어있으면 true, 아니면 false 반환 while (!s.empty()) { ... }
-
점근적 표기법알고리즘 2021. 5. 12. 00:28
쉽게 배우는 알고리즘(문병로) p.39~ 뇌를 자극하는 알고리즘(박상현) p.471~ 점근적 표기법(Asymptotic Notation) : 알고리즘의 수행 시간을 대략적으로 나타내는 방법. → 최고차항만 남긴 후 계수 제거 Θ($f(n)$) : 최고차항의 차수가 $f(n)$과 일치하는 함수의 집합 $3n^2+2n$ = Θ($n^2$) $n^2+\sqrt{n}$ = Θ($n^2$) 버블 정렬 : Θ($n^2$), 병합 정렬 : Θ($n$log$n$) O($f(n)$) : 최고차항의 차수가 $f(n)$과 일치하거나 더 작은 함수의 집합. 함수의 점근적 상한 → 어떤 최악의 상황에서도 이 성능 보장 $3n^2+2n$ = O($n^2$) $5n$ = O($n^2$) → $5n$의 증가율이 $n^2$의 증가율보..
-
값 입력 받기Python 2021. 1. 13. 20:26
a = input() b = input('값을 입력해주세요') 정수로 입력 받기 a = int(input()) 두 수 한 번에 입력 받기 - 공백으로 구분 a, b = input().split() a = int(a) b = int(b) map 이용 a, b = map(int, input().split()) 리스트 한꺼번에 입력 받기 a = [input() for i in 'a'*5] 리스트 입력 한 번에 받고 int형으로 변환 a = [int(i) for i in input().split()] a = list(map(int, input().split()))
-
MySQL limit - 상위 데이터 1개만 출력하기SQL 2021. 1. 5. 23:59
limit을 사용해 일정 개수만 출력하기 페이징 처리에 사용된다. SELECT name from animal_ins order by datetime asc limit 1; 상위 데이터를 1개만 가져온다. SELECT name from animal_ins order by datetime asc limit 1,10; 두 번째(1) 데이터부터 10개의 데이터를 가져온다. => 11번째 데이터(10)까지 가져온다. (인덱스 0부터 시작) SELECT name from animal_ins order by datetime asc limit 10, 10; 11번째(10) 데이터부터 10개의 데이터를 가져온다. => 11, 12, 13, 14, …, 20번까지의 데이터