본문 바로가기

C++

(226)
[BOJ] 17250번 은하철도 (C++) https://www.acmicpc.net/problem/17250 17250번: 은하철도 입력 데이터가 큰 관계로, 빠른 입출력을 사용하는 것을 권장합니다. www.acmicpc.net #include using namespace std; int parent[100100]; int sum[100100]; int getParent(int x){ if(x == parent[x]) return x; return parent[x] = getParent(parent[x]); } void unionParent(int a, int b){ a = getParent(a); b = getParent(b); if(a > b){ parent[a] = b; sum[b] += sum[a]; } else{ parent[b] = ..
[BOJ] 1863번 스카이라인 쉬운거 (C++) https://www.acmicpc.net/problem/1863 1863번: 스카이라인 쉬운거 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 50,000) 다음 n개의 줄에는 왼쪽부터 스카이라인을 보아 갈 때 스카이라인의 고도가 바뀌는 지점의 좌표 x와 y가 주어진다. (1 ≤ x ≤ 1,000,000. 0 ≤ y ≤ 500,000) 첫 www.acmicpc.net #include #include #include #include using namespace std; int main() { int n; cin >> n; vector v; for(int i = 0; i > a >> b; v.push_back(b); } stack st; int cnt = 0; fo..
[BOJ] 16401번 과자 나눠주기 (C++) https://www.acmicpc.net/problem/16401 16401번: 과자 나눠주기 첫째 줄에 조카의 수 M (1 ≤ M ≤ 1,000,000), 과자의 수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 과자 N개의 길이 L1, L2, ..., LN이 공백으로 구분되어 주어진다. 과자의 길이는 (1 ≤ L1, L2, ..., LN ≤ 1, www.acmicpc.net #include #include #include using namespace std; int main() { long long m, n; cin >> m >> n; vector v; for(int i = 0; i > x; v.push_back(x); } sort(v.beg..
[BOJ] 4949번 균형잡힌 세상 (C++) https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net #include #include #include using namespace std; int main() { while(true){ string str; getline(cin, str); if(str == ".") break; stack st; string ans = "yes"; for(int i = 0; i < str.length(); i++){ if(str[i] == '(..
[BOJ] 2805번 나무 자르기 (C++) https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net #include #include using namespace std; int main() { long long n, m; cin >> n >> m; vector v(n); long long min = 0, max = 0; long long result = 0; for(int i = 0; i > v[i]; if(v[i] > max)..
[BOJ] 16173번 점프왕 쩰리 (Small) (C++) https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net #include #include using namespace std; int n; int arr[3][3]; string bfs(){ queue q; q.push({0, 0}); while(!q.empty()){ int x = q.front().first; int y = q.front().second; int step = arr[x][y]; q.pop(); if(step == -1) return "H..
[Programmers] 로또의 최고 순위와 최저 순위 (C++) https://school.programmers.co.kr/learn/courses/30/lessons/77484 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr #include #include #include using namespace std; vector solution(vector lottos, vector win_nums) { vector answer; int cnt1 = 0, cnt2 = 0; for(int i = 0; i < 6; i++){ if(find(win_nums.begin(), win_nums.end(), lottos[i]) != wi..
[BOJ] 2960번 에라토스테네스의 체 (C++) https://www.acmicpc.net/problem/2960 2960번: 에라토스테네스의 체 2, 4, 6, 8, 10, 3, 9, 5, 7 순서대로 지워진다. 7번째 지워진 수는 9이다. www.acmicpc.net #include using namespace std; int main() { int num[1001]; int n, k; int cnt = 0; cin >> n >> k; for(int i = 2; i