C++14 [Algorithm] 스택 백준 10799번 쇠막대기 | C++ ※ 10799 쇠막대기 https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net #include #include using namespace std; int solution(const string& str) { stack st; int answer = 0; for (int i = 0; i < str.length(); i++) { if (str[i] == '(') { //여는 괄호이면 stack에 push st.push('('); } else { //닫는 괄호이면 .. 2022. 8. 26. [Algorithm] 정렬 백준 10825번 국영수 | C++ ※ 10825 국영수 #include #include #include using namespace std; typedef struct { // 구조체를 정의합니다 string name; int kor,eng,math; } Student; bool compare(const Student &a, const Student &b){ //비교 함수를 정의합니다 if(a.kor == b.kor){ if(a.eng == b.eng){ if(a.math == b.math){ return a.name b.math; } return a.eng b.kor; } vector solution(int n,vector name, vec.. 2022. 8. 23. [Algorithm] 그리디 프로그래머스 42862번 체육복 | C++ ※ 42862 체육복 코딩테스트 연습 - 체육복 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include using namespace std; int solution(int n, vector lost, vector reserve) { int answer = 0; //인덱스 에러가 나지 않도록 예외처리 (크기를 2만큼 여유두고) vector clothes(n + 2, 1); for (auto i : lost) { //체육복을 잃어버린 학생 clothes[i]--; } for (a.. 2022. 8. 22. [Algorithm] 백트래킹 백준 15649번 N과 M (1) | C++ ※ 15649 N과 M (1) https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net #include #include using namespace std; const int SIZE = 8; int n, m; //1부터 n까지의 자연수 중 중복없이 m개를 고른 수열 구하기 vector num(SIZE); vector check(SIZE + 1); //해당 수가 현재 수열에서 사용이 되었는지 체크하는 배열 void backtracking(int cnt.. 2022. 8. 1. [Algorithm] 브루트 포스 백준 2798번 블랙잭, 2231번 분해합 | C++ ※ 2798 블랙잭 https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net #include using namespace std; int main() { int N, M, a[100]; //N: 카드의 개수, a: 카드의 숫자를 저장하는 일차원 배열 int sum = 0, near = 0; //입력 cin >> N >> M; for (int i = 0; i > a[i]; //카드의 숫자 입력.. 2022. 5. 13. 이전 1 2 다음