/images/logo.png

[백준]1931 회의실배정

https://www.acmicpc.net/problem/1931 풀이: 회의 정보를 배열에 저장한다. 저장된 배열을 끝나는 시간을 기준으로 정렬한다. (끝나는 시간이 같다면, 시작하는 시간을 기준으로 정렬) 배열을 처음부터 순회해간다. 저장된 끝값보다 현재 시작시간이 더 크다면, 끝값을 현재 끝나는 시간으로 바꾸고 사용할 수 있는 회의 수를 +1 해준다. 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include <iostream>#include <vector>#include <algorithm>using namespace std; int n, ma = 0, e = -1; int main() { cin >> n; vector<pair<int, int>> v(n); for (int i = 0; i < n; i++) cin >> v[i].

[백준]2565 전깃줄

https://www.acmicpc.net/problem/2565 풀이: c[i] = i 위치 이전 값 중 겹치는 것이 없는 갯수의 최대 연결된 전깃줄 A와 전깃줄 B 를 배열에 저장한다. 저장된 배열을 전깃줄 A를 기준으로 정렬한다. 첫번째 원소부터, 이전 원소 중 전깃줄 B가 더 작은 값 중 c[i] 의 최댓값 + 1을 저장한다. max값에 c[i]의 최댓값 + 1 중 최댓값을 저장한다. n - max값을 출력한다. 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 #include <iostream>#include <vector>#include <algorithm>using namespace std; int n, a, b, c[101], ma = 0; vector<pair<int, int>> v; int main() { cin >> n; for (int i = 0; i < n; i++) { cin >> a >> b; v.

[백준]5430 AC

https://www.acmicpc.net/problem/5430 풀이: 배열안에 들어있는 원소를 R이 나오면 뒤집고, D가 나오면 맨 앞 숫자를 버린다. 만약 D가 나왔는데, 배열이 비어있다면, error 를 출력한다. 시간초과에 주의하자 : cout » printf, cin » scanf 특히 strlen을 주의하자 시간을 많이잡아먹는다. 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 #include <iostream>#include <string.

[백준]9375 패션왕 신해빈

https://www.acmicpc.net/problem/9375 풀이: 프로그래머스]위장 을 참고 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include <iostream>#include <vector>#include <string>#include <map>using namespace std; int main() { int n, m, ma; cin >> n; while (n--) { ma = 1; cin >> m; string s; map<string, int> a; for (int i = 0; i < m; i++) { cin >> s >> s; a[s]++; } for (auto i = a.

[백준]9663 N-Queen

https://www.acmicpc.net/problem/9663 풀이: https://jyukki97.github.io/blog/2020-02-23-nqueen/ 을 참고 코드: 사용언어 : c++ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #include <iostream>using namespace std; bool visit[16][16]; int n, sum = 0; bool po(int a, int b) { for (int i = 1; i <= a || i <= b; i++) { if ((a - i >= 0 && b - i >= 0 && visit[a - i][b - i]) || (a - i >= 0 && b + i < n && visit[a - i][b + i]) || (a - i >= 0 && visit[a - i][b])) return false; } return true; } void nq(int a) { for (int i = 0; i < n; i++) { if (po(a, i)) { if (a == n - 1) sum++; else { visit[a][i] = true; nq(a + 1); visit[a][i] = false; } } } } int main() { cin >> n; nq(0); cout << sum << endl; return 0; }

[프로그래머스]N-Queen

https://programmers.co.kr 문제: 가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 서로를 한번에 공격 할 수 없습니다. 체스판의 가로 세로의 세로의 길이 n이 매개변수로 주어질 때, n개의 퀸이 조건에 만족 하도록 배치할 수 있는 방법의 수를 return하는 solution함수를 완성해주세요. 풀이: 첫번째 줄부터 n번째 줄까지 퀸을 하나 씩 놓을 수 있다. i번째 줄에 0 ~ n까지 퀸을 놓는다고 할 때,