Algorithm 14

[백준 BOJ] 1806 부분합 C++

문제https://www.acmicpc.net/problem/1806 풀이 입력수열의 길이 N부분합 S수열출력: 부분합의 최소 길이알고리즘: 투포인터연속된 수들 중 주어진 부분합을 찾는 문제두 개의 점의 위치를 기록하며 처리하여 리스트에 순차적으로 접근하는 투포인터 사용  코드#include #include #define MAX 100010using namespace std;int N, S;int main() { ios::sync_with_stdio(false); cin.tie(NULL); cin >> N >> S; int arr[N]; for (int i=0;i> arr[i]; } int s=0, e=0, sum=0, result=MAX; while (s = ..

Algorithm 2024.09.27

[백준 BOJ] 9375 패션왕 신해빈 C++

문제입력테스트 케이스 개수 T해빈이가 가진 의상의 수 NN+2번째 줄부터는 의상의 이름과 의상의 종류출력해빈이가 입을 수 있는 의상의 경우의 수같은 종류의 옷은 같이 입을 수 없음 풀이의상의 종류와 의상의 이름이 주어지고 같은 종류는 같이 입을 수 없기 때문에 map을 이용해 저장한다.이때 map에는 의상의 종류와 해당 종류의 의상의 개수를 map에 저장한다.세부 풀이의상의 이름과 의상의 종류(category)를 입력받는다.map에 이미 저장된 category인지 map.find 함수와 map.end() 함수를 이용해 찾는다.저장되지 않은 category라면 map에 insert해준다.이미 저장되어 있는 category라면 의상의 개수를 증가시킨다.입을 수 있는 조합의 경우의 수를 계산해 출력한다. 코드..

Algorithm 2024.08.01

[백준 BOJ] 17298 오큰수 C++

문제https://www.acmicpc.net/problem/17298 입력수열 A의 크기수열 A의 원소들출력Ai의 오큰수오큰수: Ai의 오른쪽에 있고, Ai보다 큰 수이며, 큰 수들 중 가장 왼쪽에 있는 수오큰수가 없는 경우 -1 출력  풀이수열의 원소는 배열에 저장, 인덱스는 스택에 저장해 문제를 해결한다.스택에 저장되어 있는 수는 오큰수를 찾지 못한 원소이다. 세부 풀이배열에 수열의 원소 저장한다.이때 문제에 제시된 수열의 크기를 배열의 크기로 지정한다. (1 ≤ N ≤ 1,000,000)인덱스를 이용해 원소의 크기를 비교할 예정이기 때문에 인덱스 사용이 용이하도록 자료구조는 배열로 선택했다.원소의 인덱스를 스택에 저장한다.앞 원소(Ai-1)와 현재 원소(Ai)를 비교하기 위해 스택을 사용했는데, ..

Algorithm 2024.08.01

[백준 BOJ] 2792 보석상자 C++

문제 요약Input사람의 수 N, 보석 종류 수 MK번 색상 보석의 개수Output질투심의 최솟값즉, 질투심은 가장 많은 보석을 가져간 학생의 보석 개수Contraints한 사람에게 한 종류의 보석만 나눠준다.모든 사람에게 보석을 나눠줄 필요는 없지만, 모든 보석을 나눠줘야 한다.Edge CasesN의 범위는 1 ≤ N ≤ 10^9로 시간 복잡도를 줄이는 방법을 생각해야 함문제 풀이Solution보석의 수를 증가시키면서 모든 보석을 N명 이하의 학생에게 나눠줄 수 있는지 여부를 이분 탐색을 통해 찾아야 함 #include #include #define MAX 1000000001;using namespace std;int N,M,num,result;vector v;int main() { ios::s..

Algorithm 2024.07.30