반응형
STL(Standard Library)2023. 12. 31. 01:07[C++] STL algorithm 조건 지정자

algorithm 메소드의 세 번째 인자는 사용자 정의 함수로 쓸 수 있다. sort의 경우 생략하면 자동으로 오름차순 정렬하기도 하지만 사용자가 정렬이나 find조건을 커스텀하는 경우에는 직접 조건을 지정해 주어야 한다. comp함수가 참조값으로 전달되던 호출로 직접 전달되던 두 인자는 위치가 바뀌어서 첫 번째 인자가 b, 두 번째 인자가 a가  된다.다음 예시를 보자.먼저 일반적인 내림차순, 오름차순 정렬이다. 이제 조건을 더 추가해 보자.짝수가 홀수보다 앞에오도록 하기홀수끼리는 오름차순, 짝수끼리는 내림차순 정렬하기#include#includeusing namespace std;int arr[] = { 1, 4, 2, 5, 8, 7, 6, 10, 9 };bool comp(int a, int b) {..

STL(Standard Library)2023. 12. 15. 17:36[C C++] 1, 2차원 vector 할당 및 주요 기능들

https://gamedoridori.tistory.com/54 [C++ STL] vector 선언 및 초기화 (1차원, 2차원) 개요 C++의 STL 중 하나로, 한 번에 한 타입만 저장 가능합니다. 이번 게시글에서는 vector의 선언과 초기화에 대해 다뤄보겠습니다. 상세 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include using namespace std; int gamedoridori.tistory.com

2023. 12. 15. 15:11[C C++] 반올림 함수

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 해주세요.

[수학] 조건, 반복문으로 순열, 중복순열, 중복조합 출력하기
자료구조 | 알고리즘/수학2023. 11. 16. 13:19[수학] 조건, 반복문으로 순열, 중복순열, 중복조합 출력하기

1. 개념 간단한 순열과 조합은 기본적인 조건문과 반복문으로 출력할 수 있다. N개의 숫자 중에서 M개를 뽑아 순열, 조합하는 경우를 구해보자. 예를 들어 1~5까지 숫자 중에서 2개를 순열, 중복순열, 조합, 중복조합으로 뽑는다고 해보자. 참고로, 순열은 순서의 개념이 포함되므로 모든 숫자들을 나열하는 경우이고, 조합은 순서의 개념이 없으므로 출력되는 숫자들은 오름차순, 중복조합의 경우 비내림차순이 된다. 2. 구현 코드로 보면 다음과 같다. 순열(P) //순열 #include using namespace std; int check[6]; int main(void) { //ex) P(5, 3) for (int i = 1; i

PS/백준 알고리즘[BOJ]2023. 10. 30. 20:21[백준 1182번] 부분수열의 합 (C++)

https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net #include using namespace std; int seq[20]; int N, S, ans; void func(int cur, int cnt, int sum) { if (cur == N) { if (sum == S && cnt != 0) ans++; return; } //다음 원소를 포함한 경우와 포함하지 않은 경우로 나누기 func(cur + 1, ..

[백준 9012번] 괄호 (C++)
PS/백준 알고리즘[BOJ]2023. 10. 12. 17:13[백준 9012번] 괄호 (C++)

1. 문제 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 스택을 활용한 전형적인 괄호의 유효성을 검사하는 문제이다. 2. 풀이 문자열을 탐색하면서 stack이 비어있으면 추가한다. stack이 차있는 경우 stack.top와 문자를 비교하여 짝이 맞으면 stack.top을 제거하고 짝이 맞지 않으면 현재 문자를 stack에 추가한다. 3. 코드 #include #include #include using names..

[백준 3986] 좋은 단어 (C++)
PS/백준 알고리즘[BOJ]2023. 10. 12. 17:01[백준 3986] 좋은 단어 (C++)

1. 문제 https://www.acmicpc.net/problem/3986 3986번: 좋은 단어 이번 계절학기에 심리학 개론을 수강 중인 평석이는 오늘 자정까지 보고서를 제출해야 한다. 보고서 작성이 너무 지루했던 평석이는 노트북에 엎드려서 꾸벅꾸벅 졸다가 제출 마감 1시간 전에 www.acmicpc.net A와 B를 입력받고 같은 문자끼리 짝을 짓는 문제이다. 이때 아치형 곡선을 그어 서로의 곡선이 겹치지 않게 만든다 2. 풀이 아치형 곡선을 그어 서로의 곡선이 겹치지 않게 만든다는 말은 다음과 같이 바꿔 해석할 수 있다. 홀수 번째 입력받은 A를 ' ( '로, 짝수 번째 입력받은 A를 ' ) '로 치환하여 괄호쌍을 짝짓는 문제로도 볼 수 있다. 마찬가지로 B도 홀수 번째 입력받은 B를 ' [ '로..

[백준 4949번] 균형잡힌 세상 (C++)
PS/백준 알고리즘[BOJ]2023. 10. 12. 10:26[백준 4949번] 균형잡힌 세상 (C++)

깔끔하게 구현한 최종 코드는 맨 아래에 정리해 두었다. 1. 문제 https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 각 문자열은 마지막 글자를 제외하고 영문 알파벳, 공백, 소괄호("( )"), 대괄호("[ ]")로 이루어져 있으며, 온점(".")으로 끝나고, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마지막에 www.acmicpc.net 괄호쌍의 유효성을 검사하는 문제이다. 2. 풀이 문자열을 탐색하며 열린 괄호( ' ( ' 또는 ' [ ' )가 닫힌 괄호( ' ) ' 또는 ' ] ' )와 만날 때마다 짝을 지어서 준다. 이 과정에서 자료구조의 스택(stack)을 활용하면 효율적으로 풀 수 있다. 방법 열린 괄호( ' ( ' 또는 ' [ ' )..

728x90
반응형
image