본문 바로가기

c++831

[백준] 2003번: 수들의 합 (C++) 2003번: 수들의 합 문제 ) N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i] + A[i+1] + … + A[j-1] + A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오. 입력 : 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. 출력 : 첫째 줄에 경우의 수를 출력한다. 풀이) 최대 GCD문제에서 했던 것처럼 입력되는 문자열을 ' ' 기준으로 나누어 int로 변환 시킨 뒤 vector로 넣어준 후 투포인터를 진행해 문제를 풀어주었다. .. 2022. 6. 27.
[백준] 9417번: 최대 GCD (C++) 9417번: 최대 GCD 문제 ) 정수 M개가 주어졌을 때, 모든 두 수의 쌍 중에서 가장 큰 최대공약수 찾는 프로그램을 작성하시오. 입력 : 첫째 줄에 테스트 케이스의 개수 N (1 2022. 6. 27.
[백준] 1978번: 소수 찾기 (C++) 1978번: 소수 찾기 문제 ) 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 : 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 : 주어진 수들 중 소수의 개수를 출력한다. 풀이) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 #include using namespace std; int main() { int n; cin >> n; // 소수의 개수를 세기 위한 변수 int ans = 0; for(int i = 0; i >.. 2022. 6. 27.
[C++] sort (정렬) 개인 공부 후 자료를 남겨놓기 위한 목적이므로, 생략되거나 오류가 있을 수 있음을 알립니다. 이번 포스팅에서는 정렬에 대한 근본적인 알고리즘보다, C++에서 정렬을 하는 메소드를 어떻게 사용하고, 해당 메소드에 대한 옵션을 어떻게 설정해야 하는지 적어보려 한다. sort() 우선 sort 메소드를 사용하기 위해서는 코드의 헤더 부분에 algorithm 라이브러리를 추가해주어야 한다. 해당 헤더를 추가했다면, 이제 main과 같은 함수에서 정렬과 관련된 메소드들을 사용할 수 있게 된다. C++에서는 내부적으로 해당 값이 32개 이하일 때는 삽입정렬을 사용하고, 32개 초과일 경우에는 힙정렬과 퀵소트를 사용한다고 한다. (대략 O(nlogn) 정도의 시간복잡도가 걸린다고 함.) 기본 사용법 다음과 같은 in.. 2022. 6. 25.