[백준] 1920번 : 수 찾기 | binary search (C++)
·
Programming/C++ - 백준
문제 풀이 C++ 내 내장되어 있는 binary_search( ) 함수를 이용해 풀이했다. 시간복잡도는 O(logn)으로 빠른 속도로 계산할 수 있다. 입력받는 정수의 범위가 2의 31승까지 이므로 long long으로 선언한다. int n, m; long long listnum, findnum; cin >> n; vector을 이용해 입력받은 값을 저장한다. vector listv; for (int i = 0; i > listnum; listv.push_back(listnum); } binary search는 가운데에 있는 값(중간 크기의 값)을 기준으로 정렬하기 때문에, 꼭 오름차순 혹은 내림차순으로 정렬해야 한다. 따라서, sort() 함수를 이용해 정렬한 후 bian..
[백준] C++로 풀이 시 시간 초과가 난다면?
·
Programming/C++ - 백준
추가하자! ios_base::sync_with_stdio(false); cin.tie(0);
[백준] 1431번 : 시리얼 번호 | vector 구조체 (C++)
·
Programming/C++ - 백준
문제 풀이 '구조체를 이용한 벡터'로 풀이했다. 비슷한 정렬 문제 풀이를 아래에 첨부한다. 아래는 vector에 구조체를 넣어 같은 방식으로 풀이한 정렬 문제이다. [백준] 10825번 : 국영수 (C++) 문제 풀이 vector에 구조체를 넣어 풀이했다. 아래는 array에 구조체를 넣어 풀이한 문제이다. 또한, vector을 이용한 sort 함수와 사용자 지정 compare을 자세히 설명해놓았으니 이 부분이 어렵다면 읽 jigoo-log.tistory.com array에 구조체를 넣어 풀이한 정렬 문제이다. 또한, vector을 이용한 sort 함수와 사용자 지정 compare을 자세히 설명해놓았으니 이 부분이 어렵다면 읽어보는걸 추천한다! 👍👍 [백준] 11650번 : 좌표 정렬하기 | Sort 함..
[백준] 11656번 : 접미사 배열 | string.substr() 함수를 이용한 '부분 문자열 추출' (C++)
·
Programming/C++ - 백준
문제 풀이 string.substr() 함수를 이용하여 부분적으로 문자열을 추출했다. 아래는 substr() 함수에 대한 설명이다. #include //substr() 함수를 사용하기 위한 헤더 파일 string str = "CandyShop"; // str.substr(첫 번째 문자의 위치, 추출할 문자열의 길이); str.substr();// CandyShop | 인수가 없으면, 문자열 그대로 반환 str.substr(1);// andyShop | 시작 인수만 있다면, 해당 인덱스부터 마지막까지 str.substr(2);// ndyShop str.substr(3);// dyShop str.substr(4, 3); // ySh string 형식의 vector을 선언하고, substr() 함수를 이용해 ..
[백준] 10825번 : 국영수 (C++)
·
Programming/C++ - 백준
문제 풀이 vector에 구조체를 넣어 풀이했다. 아래는 array에 구조체를 넣어 풀이한 문제이다. 또한, vector을 이용한 sort 함수와 사용자 지정 compare을 자세히 설명해놓았으니 이 부분이 어렵다면 읽어보시는걸 추천한다! 👍👍 [백준] 11650번 : 좌표 정렬하기 | Sort 함수와 Compare & Array와 Vector 풀이 (C++) 문제 풀이 '이차원 벡터'와 '이차원 배열'로 풀이했다. 총 세 가지의 풀이로 문제를 해결했다! [ '이차원 벡터' 풀이 ] 1. 이차원 벡터 선언 vector v; // 이차원 벡터 선언 2. 이차원 벡터 요소 입력 for jigoo-log.tistory.com 1. vector를 선언하기 위한 구조체(struct) 생성 struct score ..
[백준] 11650번 : 좌표 정렬하기 | Sort 함수와 Compare & Array와 Vector 풀이 (C++)
·
Programming/C++ - 백준
문제 풀이 '이차원 벡터'와 '구조체를 이용한 배열'로 풀이했다. 총 세 가지의 풀이로 문제를 해결했다! [ '이차원 벡터' 풀이 ] 1. 이차원 벡터 선언 vector v; // 이차원 벡터 선언 2. 이차원 벡터 요소 입력 for (int i = 0; i > x >> y; // 첫 번째 - 이차원 벡터 입력 방법 v.push_back({x, y}); // 두 번째 - 이차원 벡터 입력 방법 v.push_back(make_pair(x, y)); } 3. 오름차순 정렬 // 사용자 지정 compare 생략 - 오름차순 정렬이기 때문에 가능 sort(v.begin(), v.end()); // 오름차순 sort(v.begin(), v.end(), less()); // 오름차순 /..
[백준] 11931번 : 수 정렬하기 4 (C++)
·
Programming/C++ - 백준
문제 풀이 sort함수를 사용할 때, greater 내림차순 less 오름차순 잊지말도록! #include // sort함수를 사용하기 위한 헤더 파일 sort(v.begin(), v.end(), compare); sort(v.begin(), v.end(), greater()); // 내림차순 sort(v.begin(), v.end(), less()); // 오름차순 아래는 정렬 시 시간복잡도에 대해서 자세하게 적어두었다. 이 문제에 대한 코드 설명도 있으니 꼭 읽어보시기를 추천드린다! 👍👍 아래의 글을 두 줄 요약하자면, sort함수는 퀵정렬을 이용해서 시간복잡도가 O(nlogn)으로 더 효율적이고 빠르다. 만약, 이중 for문을 이용해 정렬을 구현하면 시간복잡도는 O(n2) 으로 상대적으로 느리고, ..
[백준] 11866번 : 요세푸스 문제 0 (C++)
·
Programming/C++ - 백준
문제 풀이 요세푸스 문제는 큐(Queue)를 이용해 풀이할 수 있다. queue를 사용하기 위한 헤더 파일을 추가한다. 큐에 1부터 n까지의 원소를 넣는다. #include // queue를 이용하기 위한 헤더 파일 int n, k; queue q; // queue 선언 cin >> n >> k; for (int i = 1; i n >> k; for (int i = 1; i
[백준] 10845번 : 큐 (C++)
·
Programming/C++ - 백준
문제풀이큐(Queue)은 FIFO(First In First Out, 선입선출) 구조이다. 큐를 구현하기 위해 std::queue를 사용할 수 있다. 스택과 비슷한 형태의 함수를 지원하지만, 의미와 동작은 다르게 정의되어 있다. [백준] 10828번 : 스택 (C++)문제 풀이 스택(Stack)은 LIFO(Last In First Out, 후입선출) 구조이다. 스택은 컨테이너의 한 쪽 끝에서만 데이터를 삽입하거나 삭제할 수 있다. 따라서, 한쪽 끝이 아닌 위치에 있는 데이터는 접근하거jigoo-log.tistory.com 예를 들어, std::queue에서 pop()은 pop_front()를 의미한다.만약, 단순히 양 끝에 있는 원소에 접근하고 싶다면 front(), back() 함수를 사용하면 된다...