백준(C, C++) 40

백준 20056: 마법사 상어와 파이어볼 [C/C++], 삼성 코딩 테스트

https://www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net #include #include #include #define fastio() ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); using namespace std; int N, M, K, ans; int dy[8] = {-1, -1, 0, 1, 1, 1, 0, -1}; // 방향을 나타냅니다. int dx[8] = {0,..

백준 14503: 로봇 청소기 [C/C++], 삼성 코딩 테스트

https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net #include using namespace std; int wall[55][55]; // 벽 int clean[55][55]; // 청소 유무 int dy[4] = {-1, 0, 1, 0}; // 북 동 남 서 int dx[4] = {0, 1, 0, -1}; int ry, rx; int way; int cnt = 1; int n, s; void input(); void solve(int y, ..

백준 1966: 프린터 큐 [C/C++]

https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 www.acmicpc.net #include #include #include #include #include using namespace std; int main() { int t; cin >> t; while (t--) { queue q; int n, p, t; cin >> n >> p; vector v(n); for (int i = 0; i > t; v[i] = t; q.push(make_pair(t, i)); // 입력값과..

백준 3078: 좋은 친구 [C/C++]

https://www.acmicpc.net/problem/3078 3078번: 좋은 친구 첫째 줄에 N과 K가 주어진다. (3 ≤ N ≤ 300,000, 1 ≤ K ≤ N) 다음 N개 줄에는 상근이네 반 학생의 이름이 성적순으로 주어진다. 이름은 알파벳 대문자로 이루어져 있고, 2글자 ~ 20글자이다. www.acmicpc.net #include #include using namespace std; int n, k; long long ans; // IntMax n >> k; for (int i = 0; i > s; lis[i] = s.size(); // 길이를 입력한다. } } void solve() { for (int i..

백준 15961: 회전 초밥 [C/C++]

https://www.acmicpc.net/problem/15961 15961번: 회전 초밥 첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 3,000,000, 2 ≤ d ≤ 3,000, 2 www.acmicpc.net 코드: #include using namespace std; int n, d, k, c, cnt, ans, l, r; int lis[3030303], sushi[3030]; void input() { cin >> n >> d >> k >> c; for (int i = 0; i > lis[i]; } void solve() { l = 0; r = k - 1..

백준 3163: 떨어지는 개미 [C언어]

https://www.acmicpc.net/problem/3163 3163번: 떨어지는 개미 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 N, L, k가 주어진다. 다음 N개 줄에는 pi와 ai가 주어진다. ai는 개미의 ID이고, pi는 그 개미의 초기 위치이다. 항상 p www.acmicpc.net #include int T, N, L, K; int p[1000001]; int id[1000001]; int front, rear; int plus[1000001]; int pn, pp; int minus[1000001]; int mn, mp; void merge(int data[], int p, int q, int r) { int i = p, j = q+1, k = ..

백준 2505: 두 번 뒤집기 [C/C++]

https://www.acmicpc.net/problem/2505 2505번: 두 번 뒤집기 첫줄에는 숫자판의 크기를 나타내는 정수 N (5 ≤ N ≤ 10,000)이 주어진다. 그 다음 줄에는 두 개의 구간이 뒤집혀진 놀이판의 상태를 나타내는 숫자들이 하나의 공백을 두고 나타난다. www.acmicpc.net #include using namespace std; #define nn 10001 #define f first #define s second typedef vector vpii; int n, a[nn], b1[nn], b2[nn]; int m=0, l1=1, r1=1, l2=1, r2=1; vpii seg; void turn(int l, int r){ for( int i=l; i

백준 1158: 요세푸스 문제 [C언어]

https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 코드 : #include #include #define TRUE 1 #define FALSE 0 typedef int Data; typedef struct _node { Data data; struct _node* next; }Node; typedef struct _CLL { Node* tail; Node* cur; Node* before; int numOfData; }CList; typedef CList List; void ListInit(List* plist) { plist->tail..

백준 1037 약수, c++

https://www.acmicpc.net/problem/1037 1037번: 약수 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고, 2보다 크거나 같은 자연수이고, 중복되 www.acmicpc.net 풀이: prime의 square number과 그 외를 구분해주면 되는 문제입니다. #include #include #include #define fastio() ios::sync_with_stdio(0),cin.tie(nullptr),cout.tie(nullptr); using namespace std; int main() { fastio(); int n; cin >> n; vector ..