반응형

전체 글 272

[PS를 위한 C++] 3. #include <bits/stdc++.h> 헤더파일 사용하기

앞으로 모든 C++로 PS를 할 경우엔 이 헤더파일 하나만 사용하면 됩니다. #include 이게 무엇인지 궁금하시죠? bits.stdc++.h 파일의 확장자와 #include 에서 알 수 있듯이 헤더파일입니다. 이 헤더파일은 모~~든 헤더파일(iostream, vector 등)이 포함된 헤더파일입니다. 장점 한 줄로 모든 헤더파일을 쓸 수 있어서 편합니다. STL이나 함수가 어떤 헤더파일에 있었는지 기억할 필요가 없습니다. 대부분의 온라인 사이트에서 사용가능합니다. 단점 표준 헤더가 아니기 때문에 gcc가 아닌 컴파일러에선 사용할 수 없습니다. 사용하지 않는 헤더파일도 불러오기 때문에 컴파일 시간이 늘어납니다. 개발환경에서 사용하기 위해선 설정을 해줘야 합니다. bits/stdc++.h 헤더를 개발 환..

[코드포스 / Codeforces] Round #901 (Div. 2)

Codeforces Round #901 (Div. 2) 문제 세트는 여기서 확인할 수 있다. 문제 A. Jellyfish and Undertale (AC+1 / 38 min) 더보기 타이머가 1초일 때마다 가장 작은 도구를 써주면 된다. 사실 풀이의 이유는 모르지만 직접 손으로 써보고 찾은 규칙대로 코드를 짰다. #include using namespace std; #define int long long signed main() { cin.tie(0)->sync_with_stdio(0); int t; cin >> t; while (t--) { int a, b, n; cin >> a >> b >> n; int ans = b, cnt = 0; for (int i = 0; i < n; i++) { int x;..

[코드포스 / Codeforces] Round #900 (Div. 3)

Codeforces Round #900 (Div. 3) 문제 세트는 여기서 확인할 수 있다. 문제 A. How Much Does Daytona Cost? (AC / 4 min) 더보기 n 크기의 배열의 서브세그먼트에서 k가 가장 빈도가 높은 수가 되도록 할 수 있는지 여부를 출력하는 문제. 서브세그먼트는 배열의 원소 하나도 가능하므로 배열에 k가 등장하면 YES 아니면 NO를 출력한다. #include using namespace std; int main() { cin.tie(0)->sync_with_stdio(0); int t; cin >> t; while (t--) { int n, k; cin >> n >> k; int x; string ans = "NO"; for (int i = 0; i < n; ..

[PS를 위한 C++] 2. VS Code C++ 개발 환경 설정

대부분 C++로 개발할 때 Windows 사용자들은 Visual Studio를 사용할 것이고 mac 사용자들은 Xcode를 사용할 것입니다. 물론 둘 다 충분히 훌륭한 ide지만, VS Code의 Extension들을 포기하지 못한 저 같은 사람들은 VS Code를 써야겠죠. 그를 위한 설정입니다. 확장 프로그램 C/C++ C/C++ Extension Pack C/C++ Themes settings.json { "files.associations": { "iostream": "cpp", "__bit_reference": "cpp", "__bits": "cpp", "__config": "cpp", "__debug": "cpp", "__errc": "cpp", "__hash_table": "cpp", "__..

[코드포스 / Codeforces] Round #899 (Div. 2)

Codeforces Round #899 (Div. 2) 문제 세트는 여기서 확인할 수 있다. 문제 A. Increasing Sequence (AC / 6 min) 더보기 배열 a를 입력받고 조건을 만족하는 b의 n번째 원소의 최솟값을 출력하는 문제. b는 반드시 오름차순이어야 하고 b의 n번째 원소가 최소가 되기 위해선 a의 1번째 원소는 1부터 가능한지 검사한다. a와 b의 i번째 원소가 같으면 안되므로 x = 1이라는 변수를 만들고 a의 각 원소에 대해 같으면 +2, 아니면 +1 한다. 기본적으로 오름차순이어야 하니까 +1인데, 만약 원소가 a와 같으면 1 더 증가시키면 된다. x는 b의 n번째 원소 + 1 이므로 x-1 출력. #include using namespace std; int main()..

[코드포스 / Codeforces] Educational Round #155 (Div. 2)

Codeforces Educational Round #155 (Div. 2) 문제 세트는 여기서 확인할 수 있다. 문제 A. Rigged! (AC+2 / 27 min) 더보기 힘은 들 수 있는 바벨 무게의 최대값, 지구력은 바벨을 들 수 있을 때 가능한 횟수다. 이 문제에선 첫 번째 선수가 우승하기 위한 바벨의 최소 무게를 구하는 문제다. 처음 입력되는 선수의 힘 s와 지구력 e를 기준으로 e가 더 높은 선수만 s, e를 pair로 벡터에 추가한 다음 힘을 기준으로 정렬한다. 만약 그런 선수가 없다면 첫 선수의 힘을 출력한다. 자신보다 힘이 강한 선수가 있다면 우승할 수 없으므로 -1을 출력한다. 자신보다 힘이 강한 선수는 없지만, 횟수를 같거나 많이 하는 선수가 있다면 그 선수가 들 수 있는 무게 + ..

[코드포스 / Codeforces] Round #895 (Div. 3)

Codeforces Round #895 (Div. 3) 문제 세트는 여기서 확인할 수 있다. 문제 A. Two Vessels (AC / 7 min) 더보기 a, b 중 큰 수와 작은 수를 정해놓고 작은 수와 큰 수에 각각 c를 더하고 빼면서 몇 번 만에 같아지는지 구하는 문제다. 단순 시뮬레이션. #include using namespace std; #define ll long long #define pii pair int main() { ios::sync_with_stdio(0); cin.tie(0); int t; cin >> t; while (t--) { int a, b, c; cin >> a >> b >> c; int small = a > b ? b : a; int big = a > b ? a : ..

[코드포스 / Codeforces] Round #894 (Div. 3)

Codeforces Round #894 (Div. 3) 문제 세트는 여기서 확인할 수 있다. 문제 A. Gift Carpet (AC / 5 min) 더보기 문자 행렬을 입력받고 좌측 열부터 순서대로 탐색한다. 각각 다른 열에서 v, i, k, a를 순서대로 하나씩 선택할 수 있다면 YES 아니면 NO. #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int t; cin >> t; char a[] = {'v', 'i', 'k', 'a'}; while (t--) { int n, m; cin >> n >> m; vector v(n); int cnt = 0; for (int i = 0; i ..

[코드포스 / Codeforces] Round #886 (Div. 4)

Codeforces Round #886 (Div. 4) 문제 세트는 여기서 확인할 수 있다. 문제 A. To My Critics (AC / 2 min) 더보기 a, b, c 중 두개의 합이 10 이상이면 yes 아니면 no를 출력하는 문제. #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int t; cin >> t; while (t--) { int a, b, c; cin >> a >> b >> c; if (a + b >= 10 || a + c >= 10 || b + c >= 10) cout t; while (t--) { int n, t = 0, idx = -1; cin >> n; for (int i = 0; ..

[앳코더 / AtCoder] AtCoder Beginner Contest 322 (ABC 322)

Atcoder Beginner Contest 322 (ABC 322) 문제 세트는 여기서 확인할 수 있다. 문제 A. First ABC 2 (AC / 1 min 44 sec) 더보기 문자열 s에서 "ABC"가 처음 등장하는 위치가 몇 번째 문자인지 출력하는 문제. 없는 경우 -1을 출력한다. #include using namespace std; int main() { cin.tie(0)->sync_with_stdio(0); int n; string s; cin >> n >> s; if (s.find("ABC") != -1) cout > n >> m >> s >> t; if (t.substr(0, n) == s) { if (t.substr(m - n, n) == s) cout > m; vector v(m)..

반응형