예제문자열 “123” 앞에 “0” 패딩을 3개 붙이기string a("123");string b = string(3, '0');int paddings = 4;a.insert(0, b); // "000123": 첫째 인수는 삽입하고자하는 위치, 두번째는 삽입하려는 문자열!a.insert(a.size(), string(paddings, '0')); // "0001230000"디버깅아래의 함수를 헷갈리면 안된다. 2번째 매개변수는 문자열이 아니라 문자 리터럴을 사용해야한다. string b = string(3, '0'); // 좋은 예안그러면 문자열의 null캐릭터까지 추가가 되어 패딩으로서의 역할을 하지 못한다.string(paddings, "0"); // 널캐릭터까지 추가되어 패딩이 망가진다.
#1 스택스택은 데이터를 쌓는 형태로 가장 마지막에 들어온 데이터가 가장 먼저 나가는 LIFO(Last in First Out) 자료구조다.#2 연산push스택에 데이터를 삽입하는 연산으로 스택의 가장 위에 데이터를 저장한다.pop스택에 데이터를 삭제하는 연산으로 가장 마지막에 저장한 데이터를 제거한다.peek스택의 가장 위 데이터를 확인한다.#3 스택의 사용파이썬# 빈 스택 초기화stack = []print("stack:", stack)# 스택에 원소 추가stack = [1, 2, 3]stack.append(4)print("stack:", stack)# 스택 원소 제거stack = [1, 2, 3]stack.pop()print("stack:", stack)# 스택 원소 찾기stack = [1, 2, 3..
시간과 공간프로그램을 실행하기 위해서는 시간과 메모리가 필요하다. 같은 기능을 수행하는 프로그램 둘이 있을 때 시간과 메모리를 덜 소모할수록 효율적인 프로그램이다.복잡도복잡도란 작성한 알고리즘이 효율적인지 시간, 공간적으로 효율적인지를 판단하는 기준이다. 알고리즘의 효율성을 정량화한다. 시간복잡도는 알고리즘의 실행시간을 정량화한 것이다. 공간복잡도는 알고리즘의 실행에 필요한 메모리량을 정량화한 것이다.빅오표기법빅오표기법은 알고리즘의 복잡도를 표기하는 방법 중에 하나로 최악의 경우의 상관관계를 표현한다. 입력 데이터 대비 함수를 실행하는 데에 필요한 비용(시간, 공간)의 상관관계를 수식의 최고차항으로 표현한다.그래프는 시간복잡도를 표현한 것이다. 최고차항이 커질수록 동일 입력 데이터 대비 소요되는 시간이 ..