본문 바로가기
728x90

알고리즘/개념6

알고리즘의 시간복잡도 알고리즘의 성능 평가 같은 문제를 풀어도 여러 방법의 알고리즘이 나옵니다. 여러 알고리즘 중 가장 효율적인, 성능이 좋은 방법을 택하는 것이 좋겠죠. 옛날에는 메모리가 비싸 메모리를 가장 적게 사용하는 것이 최적의 알고리즘이었습니다. 그러나 요즘은 메모리의 가격이 낮아져 알고리즘의 성능을 따질 때 가장 중요하게 보는 것은 '시간'입니다. 시간 복잡도 알고리즘의 성능은 시간으로 나타낼 수 있습니다. 다만 컴퓨터의 성능에 따라 차이가 있습니다. 그래서 시간이 얼마나 걸리는지를 알 수 있는 좀 더 객관적인 지표가 필요합니다. 따라서 보통 시간복잡도(Time complexity)라는 지표를 사용합니다. 여기서 말하는 시간복잡도는 입력 값에 따른 처리에 걸리는 시간을 말합니다. 여기서 말하는 시간은 "연산의 실행.. 2020. 9. 16.
[C++] pair Pair 란? - 두 객체를 하나로 묶어주는 클래스이다. (좌표 등을 표현하기에 적절하다.) - 헤더에 존재한다. Pair의 기본 사용 방법 선언 pair p; - 묶어줄 두 값의 데이터 타입을 넣어주고, 변수 명을 지정한다. 입력, 값 할당 cin >> x >> y; p = make_pair(x, y); make_pair(변수1, 변수2): 변수1, 변수2를 묶어준다(pair를 만들어준다). - pair로 만든 변수에는 값을 바로 입력받을 수 없다. 그래서 두 변수에 입력받고 난 후에 묶어주어야 한다. 출력 cout 나이순 정렬 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞.. 2020. 9. 4.
C++ 알고리즘 실행시간 줄이기 입력이 많은 경우 cin.tie(NULL); ios_base::sync_with_stdio(0); 입력의 시간을 줄여준다, 출력이 많은 경우 줄바꿈을 할 때 endl이 아닌 \n을 사용해준다. 2020. 8. 22.
문자열 정렬 #include #include #include using namespace std; bool comp(string s1, string s2){ return s1 < s2; } int main(){ string arr[5] = {"abc", "aa", "abcd", "aza", "bcda"}; sort(arr, arr+5, comp); for(int i=0;i 2020. 8. 11.
문자열 총정리 <C++>: char, string, #include <cstring>, #include <string>, getline, 문자열 알고리즘 문제를 풀 때 필요한 문자열 정리 1. 선언 방법 - 문자열 선언 방법에는 크게 두가지가 있다. 1. char타입(문자형)의 배열을 만드는 것 2. string 타입의 변수를 선언하는 것 -> string은 문자열 타입이고, 변수로 선언하더라도 배열과 크게 다르지 않다. (vector 개념을 사용하기 때문이다.) -> 또한 string은 int, float, char와 같은 기본 타입이 아니기 때문에 헤더파일을 포함시켜주어야 한다. (실제로 코드를 짜다보면 코드에서 char의 색깔은 바뀌고, string은 까만 색인 것으로 알 수 있다.) -> #include을 이용해 포함하거나 #include 을 이용하여 포함시킨다. char ex. string ex1. string ex2. 2. 문자열 길이.. 2020. 7. 12.
큐(queue), 스택(stack) 명령어 정리와 연습문제 - 스택 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 � www.acmicpc.net https://www.acmicpc.net/problem/12605 12605번: 단어순서 뒤집기 스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만 � www.acmicpc.net https://www.acmicpc.net/prob.. 2020. 5. 17.
728x90