https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net #include #include #include #include #include #include #include #include #include #include using namespace std; void fastIO(); int main() { int M, N = 0; int cnt = 0; vector vec; cin >> M; cin >> N; for (auto i = M; i
STUDY
https://www.acmicpc.net/problem/2587 2587번: 대표값2 어떤 수들이 있을 때, 그 수들을 대표하는 값으로 가장 흔하게 쓰이는 것은 평균이다. 평균은 주어진 모든 수의 합을 수의 개수로 나눈 것이다. 예를 들어 10, 40, 30, 60, 30의 평균은 (10 + 40 + 30 + 60 + www.acmicpc.net #include #include #include #include #include #include #include using namespace std; void fastIO(); int main() { vector vec; int N, sum =0, mid; for (auto i = 0; i > N; vec.push_back(N);..
https://www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 합들을 저장해주고 내림차순으로 정렬후 첫번째 값을 출력해줬다. #include #include #include #include #include #include #include using namespace std; void fastIO(); int main() { int N, M; vector vec; vector inVec; int num; int sum; cin ..

https://www.acmicpc.net/problem/2869 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B > A >> B >> V; while (1) { ++day; tmp += A; if (tmp >= V) break; tmp -= B;..
https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 0. 예를들어 aabbbccb가 주어졌다고 가정한다. 1. aabbbccb 를 unique 함수를사용 - > abcb abbc 가 된다. ( 연속되는 중복되는값을 맨 뒤로 보낸다. ) 2. 뒤에 중복된 값인 abbc를 erase를 통해 삭제. -> 그럼 abcb만 남게된다. 3. abcb를 sort한다. -> abbc (꼭! 먼저 중복되는값을 삭제해준후 정렬해주자)..
https://www.acmicpc.net/problem/25304 25304번: 영수증 준원이는 저번 주에 살면서 처음으로 코스트코를 가 봤다. 정말 멋졌다. 그런데, 몇 개 담지도 않았는데 수상하게 높은 금액이 나오는 것이다! 준원이는 영수증을 보면서 정확하게 계산된 것 www.acmicpc.net for문으로 구현했다. 정상작동하는데 틀렸다고나온다.?_? while로 구현해볼까하다 잘못된걸 발견했다. 브론즈5 문제이지만 아무생각없이 풀다가는 이렇게 될 수 있다는걸 간과하지말자. 교훈을 얻었다. 금액과 일치한다면 yes 아니라면 no를 출력해야한다. 내가 코딩한건 일치하지않는다면 no 그 외의 모든건 yes 인것이다. else if 가아닌 else니 말이다. !=를 == 로 바꿔주고 no yes의 위..
https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 최빈값에서 꽤나 애먹었다. max_element라는 좋은 녀석을 알게되었다. 이녀석은 값 자체를 반환하는게 아닌, 값의 주소를 반환한다. (iterator 반복자) 그러므로 값을 참조하고싶다면 *를 붙여주도록 하자. max_element는, 범위 내에서 가장 큰녀석의 첫번째 위치를 반환해준다. (반대로는 min_element가 있다.) arr = {1, 2, 3, 4, 5, 1, 2, 3, 4, 5} 라는 배열..
https://www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net sort는 퀵정렬을 기반으로하는 불안정 정렬이다. 고로, 나이순으로 정렬을 하지만, 나이가 같다면 뒤에는 어떤 이름이 어떻게 정렬될지 모른다. 간단한 정렬문제지만 조건이 있다. 나이가 같다면 먼저 기입된 순으로 출력할 것. 찾아보니 stable_sort 라는 녀석이 있는데 병합정렬이다. 둘의 결정적 차이라면 sort : 기존의 순서를 보장하지않음. stable_sort : 기존의 순서를 보장함. 속도의..
https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net vector를 안지 며칠이 안지났기에.. 잘 알지 못한다. 필요할때 찾아서 공부하기 때문 그래서 아무생각없이 쳐내려갔더니 결과는 틀렸습니다. 그래서 2차원 vector에 대해 찾아보고 적용시켜본 결과 정답이 나왔다. 아래 첫번째 소스코드는 1차원벡터를 사용한 오답이다. #include #include #include using namespace..
https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net #include #include #include using namespace std; int N = 0; int M = 0; int num = 0; vector vec; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cin >> N; for (int i = 0; i < N; i++..
https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 2진탐색을 직접 구현했을때 #include #include #include #include using namespace std; int N = 0; int M = 0; int num = 0; vector vecA; void binarySearch(int target); int main() { ios::sync_with_stdio(false); cin..
https://www.acmicpc.net/problem/10773 10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 처음엔 stack 안의 값들을 전부 더해서 출력해주는 좋은 함수가 있을까싶어 찾아보려다 그냥 sum 하나 선언해두고 더했다. sum -= num으로 아무생각없이 적었더니 빼기가 안되는걸 보고 부랴부랴 top 값을 임시적으로 저장할 topN을 선언후 top 값을 저장후 뺐다. 지금보니 topN보단 temp 라고 명명했음 좋았을거 같은 느낌. #include #inc..