STUDY(62)
-
C++ - 2차배열 / 동적할당 패턴 연습 (+입력 정리, vector 인자로 넘길때)
입출력하고 배열에 우선 익숙해져야겠다..... 1. cin / cout 을 쓰는걸로하자. cin / cout 은 C++ 의 String 을 쓸수있다. 근데 printf/scanf는 저걸 못씀. 대신, cin / cout 쓰려면 조건이 몇가지 있다. ios::sync_with_stdio(0); // C++ stream과 C stream의 동기화를 끊어서 프로그램 수행시간 늘리도록 하는기능. cin.tie(0); // cin 명령을 수행하기 전에 cout 버퍼를 비우지 않도록 하는 코드. 이 2개를 같이 써야함. 입출력이 작을때는 상관없지만, 양이 많을때 ( 출력 100만번 / 입력 100만번 ) 지연되어 시간초과 발생할 수 있다. 그리고 , 이걸 쓸때 cin / cout 하고, printf / scanf ..
2022.08.19 -
(C++) vector - accumulate, clear/erase, unique(+sort)
# accumulate HEADER : #include C++ 배열의 합을 구하는 함수이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include #include using namespace std; int main() { vector v{1,2,3,4,5,6,7,8,9,10}; int sum = accumulate(v.begin(), v.end() ,0); // accumulate( first iter, lase iter, initial val of sum ); vector v2 = { 1000000000, 2000000000 }; // long long int long long sum = accumulate(v.begin(), v.end(), 0LL); return 0; } Co..
2022.08.18 -
1491. Average Salary Excluding the Minimum and Maximum Salary (C++)
You are given an array of unique integers salary where salary[i] is the salary of the ith employee. Return the average salary of employees excluding the minimum and maximum salary. Answers within 10-5 of the actual answer will be accepted. Example 1: Input: salary = [4000,3000,1000,2000] Output: 2500.00000 Explanation: Minimum salary and maximum salary are 1000 and 4000 respectively. Average sal..
2022.08.17 -
26. Remove Duplicates from Sorted Array ( C++ )
Given an integer array nums sorted in non-decreasing order, remove the duplicates in-place such that each unique element appears only once. The relative order of the elements should be kept the same. Since it is impossible to change the length of the array in some languages, you must instead have the result be placed in the first part of the array nums. More formally, if there are k elements aft..
2022.08.17 -
에라토스테네스의 체 ( Sieve of Eratosthenes ) - C++
오... 이건 또 무엇인가. 백준 17425번을 풀다가 접한 이론이다. 소수를 찾는 방법중 하나이다. 이 방법은 마치 체로 치듯이 수를 걸러낸다고 하여 '에라토스테네스의 체'라고 불린다. # 방법 # 임의의 자연수 N 에 대해 그 이하의 소수를 찾는 가장 간단하고 빠른 방법이다. 예를 들어 1 ~ 100 까지 숫자 중 소수를 찾는다고 하자. ( The sieve of Eratosthenes is one of the most efficient ways to find all primes smaller than N when N is smaller than 10 million or so. ) 1. 우선 1 ~ 100 까지의 수가 있다. ( Let us take an example when N = 100. So,..
2022.08.17 -
백준 17427 - 약수의 합(C++)
문제 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더한 값이고, f(A)로 표현한다. x보다 작거나 같은 모든 자연수 y의 f(y)값을 더한 값은 g(x)로 표현한다. 자연수 N이 주어졌을 때, g(N)을 구해보자. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 출력 첫째 줄에 g(N)를 출력한다. 예제 입력 1 복사 1 예제 출력 1 복사 1 예제 입력 2 복사 2 예제 출력 2 복사 4 예제 입력 3 복사 10 예제 출력 3 복사 87 # 풀이 # 1 2 3 4 5 6 7 8 9..
2022.08.17 -
백준 설탕배달
허얼... ㅠㅠ 다풀었는데..... 다풀었는데 .......!!! 마지막 입출력값이 안나왔어... 좀더 단순하게 생각해야겠다. ㅠㅠ https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 설탕 봉지 갯수를 최소로 줄여야하니까... 5KG짜리를 1봉지씩 줄여가며 나머지값이 3으로 떨어지는 갯수를 찾아야하는것이다. 문제에 답이 있다. ㅠ_ㅠ 그래도 정답률 30퍼 대라는거에 위안을 ㅋㅋㅋㅋㅋㅋㅋㅋ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ..
2022.08.16 -
2000. Reverse Prefix of Word (C++)
간단한 Two Pointer 문제! 틈나는대로 풀고있다 ㅋㅋㅋ 확실히 풀리니까 재밌구만. Given a 0-indexed string word and a character ch, reverse the segment of word that starts at index 0 and ends at the index of the first occurrence of ch (inclusive). If the character ch does not exist in word, do nothing. For example, if word = "abcdefd" and ch = "d", then you should reverse the segment that starts at 0 and ends at 3 (inclusive)...
2022.08.11 -
Two Pointer (C++)
투 포인터는 매우 쉽고 효율적인 테크닉으로, 일반적으로 소팅된 배열에서 검색하는 방법이다. 주어진 배열 A(sorting in ascending order), 그리고 N integers 가 있다.(target값). 해당 배열에서 임시로 설정한 pair( A[i], A[j] ) 의 합이 target 과 같은 것이 있는지 찾는 것이다. 예시를 보며 이해해보자. A[] = {10, 20, 35, 50, 75, 80} X = =70 i = 0 j = 5 A[i] + A[j] = 10 + 80 = 90 Since A[i] + A[j] > X, j-- i = 0 j = 4 A[i] + A[j] = 10 + 75 = 85 Since A[i] + A[j] > X, j-- i = 0 j = 3 A[i] + A[j] = ..
2022.08.11 -
C++ - vector of pairs / vector of vectors
1. vector of pairs vector 와 pair를 섞어 쓰는 방법이다. 연습이 필요하다 ㅠㅅㅜ 단순하게 생각하면서 익히자...! // C++ program to demonstrate vector of pairs ! #include #include using namespace std; bool sortbysecond(const pair &a, const pair &b) { return (a.second < b.second); } int main() { vector vec; int arr[] = {10,20,5,40}; int arr1[] = {30,60,20,50}; int n = sizeof(arr)/sizeof(arr[0]); for(int i =0; i < n; i++) { // assig..
2022.08.09