전체 글
-
입력(C++ cin)기본(Basic) 2021. 1. 6. 12:01
대부분의 대회에서는 입력을 읽고 출력을 쓸 때 표준 스트림을 사용한다. C++의 표준 스트림은 입력에 대해서는 cin이고, 출력에 대해서는 cout이다. scanf, printf와 같은 C 언어 함수도 사용할 수 있다. 프로그램의 입력은 보통 공백 문자나 개행 문자로 구분된 문자열 및 수로 이루어진다. 이러한 입력을 cin 스트림으로 읽어 들이려면 다음과 같이 하면 된다. int a, b; string x; cin >> a >> b >> x; 입력을 구성하는 각 원소 사이에 적어도 한 개의 공백 문자나 개행 문자가 존재할 경우, 이러한 형태의 코드는 항상 문제없이 동작한다. 예를 들어 이 코드는 다음과 같은 두 가지 형태의 입력을 모두 읽어 들일 수 있다. 123 456 monkey
-
언어적 특성기본(Basic) 2021. 1. 6. 11:57
경진 프로그램에서 사용되는 C++ 코드 템플릿의 전형적인 형태는 다음과 같다. #include int main() { // TODO : 이 부분에 풀이를 작성한다. } #include로 시작하는 코드 첫 줄은 표준 라이브러리 전체를 포함시키는 g++ 컴파일러의 기능이다. 이 경우 iostream, vector, algorithm 등의 라이브러리를 개별적으로 포함시키지 않아도 자동으로 사용할 수 있게 된다. (g++ 컴팡이러만 가능 mvsc 는 안됩니다.) 코드의 using 구문은 표준 라이브러리의 클래스 및 함수를 바로 사용할 수 있도록 하기 위한 선언문이다. 이 구문이 있으면, 예를 들어 std::cout이 아니라 cout과 같은 식으로 코드를 작성할 수 있게 된다. 작성한 코드는 다음 명령어로 컴파일..
-
백준 10989: 수 정렬하기 3정렬(Sort) 2020. 11. 28. 18:35
www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 데이터의 개수 가 최대 10,000,000 개 시간 복잡도 O(N)의 정렬 알고리즘 필요 수위 범위가 1~10,000임으로 계수 정렬을 사용 메모리 제약은 8MB #include #include // min #include #include #include #include typedef unsigned long long ull; using namespace std; int table[10001] = { 0, }; int main(..
-
백준 11650: 좌표 정렬하기정렬(Sort) 2020. 11. 28. 18:29
www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net pair 를 사용하고 stl sort 로 쉽게 풀이 #include #include // min #include #include #include #include #include #include #include using namespace std; int main() { int t; cin >> t; vector v(t); for (int i = 0; i
-
백준 10814: 나이순 정렬정렬(Sort) 2020. 11. 28. 18:26
www.acmicpc.net/problem/10814 10814번: 나이순 정렬 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 www.acmicpc.net 멀티맵(multimap)의 특성인 중복을 허용하면서 정렬 되는 점을 이용하여서 풀이 #include #include // min #include #include #include #include #include #include #include #include #define M_PI 3.14159265358979323846 using namespace std; int main() { std::ios::sync_with_..
-
백준 1427번: 소트인사이트정렬(Sort) 2020. 11. 28. 18:19
www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하고자하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net STL sort(n log n) 를 사용하지 않고 계수 정렬을 사용한 풀이 #include #include // min #include #include #include #include #include #include using namespace std; int main() { std::ios::sync_with_stdio(false); int n; cin >> n; vector arr(10); while (n != 0) { int cand = n % 10; arr.push_back(cand); n ..
-
백준 2798번: 블랙젝구현(Implementation) 2020. 11. 28. 16:12
www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는다. 합이 M을 넘지 않는 카드 3장을 찾을 수 있 www.acmicpc.net #include #include // min #include #include #include #include #include #include #include using namespace std; int main() { std::ios::sync_with_stdio(false); int n, m; cin >> n >> m; vector arr(n); for (int i = 0; ..
-
백준 15969번: 행복구현(Implementation) 2020. 11. 28. 16:00
www.acmicpc.net/problem/15969 15969번: 행복 모든 서브태스크에서 2 ≤ N ≤ 1,000이고 입력되는 학생들의 점수는 0 이상 1,000 이하의 정수이다. www.acmicpc.net 문제 코이 초등학교에 새로 부임하신 교장 선생님은 어린 학생들의 행복감과 학생들의 성적 차이 관계를 알아보기로 했다. 그래서 이전 성적을 조사하여 학생 들의 시험 점수 차이 변화를 알아보려고 한다. 예를 들어서 2016년 학생 8명의 점수가 다음과 같다고 하자. 27, 35, 92, 75, 42, 53, 29, 87 그러면 가장 높은 점수는 92점이고 가장 낮은 점수는 27점이므로 점수의 최대 차이는 65이다. 한편 2017년 학생 8명의 점수가 다음과 같았다. 85, 42, 79, 95, 37..