목록전체보기 (227)
득이공간
1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼이 www.acmicpc.net #include #include using namespace std; int N, M, C; bool Broken[10]; bool IsPossible(string CurrentChannel, int Size) { for (int i = 0; i < Size; ++i) { int Number = CurrentChannel[i] - '0'; if (Broken[Number]) { return false; } } return true; } int ..
20529번: 가장 가까운 세 사람의 심리적 거리 각 테스트 케이스에 대한 답을 정수 형태로 한 줄에 하나씩 출력한다. www.acmicpc.net #include #include using namespace std; string Students[32]; int GetDistance(string A, string B, string C) { int Distance = 0; for (int i = 0; i > N; if (N..
11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net #include #include using namespace std; template struct compare { constexpr bool operator()(const _Ty& _Left, const _Ty& _Right) { return (abs(_Left) == abs(_Right)) ? _Left > _Right : abs(_Left) > abs(_Right); } }; priority_queue MinHeap; int main()..
6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net #include using namespace std; int GCD(int A, int B) { if (B == 0) { return A; } return GCD(B, A % B); } int LCM(int A, int B) { return (A * B) / GCD(A, B); } void Test() { int M, N, X, Y; cin >> M >> N >> X >> Y; int MaxYear = LCM(M, N); for (int Year = X; Year
5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net #include #include using namespace std; string S; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N, M; cin >> N >> M >> S; int Count = 0; for (int i = 0; i < M; ++i) { int K = 0; if (S[i] == 'O..
1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net #include #include #include #include using namespace std; const int Infinite = INT_MAX; int Distance[101][101]; vector OrderedList; bool Compare(const pair& Left, const pair& Right) { return (Left.second == Right.second) ? Left.first ..
21736번: 헌내기는 친구가 필요해 2020년에 입학한 헌내기 도연이가 있다. 도연이는 비대면 수업 때문에 학교에 가지 못해 학교에 아는 친구가 없었다. 드디어 대면 수업을 하게 된 도연이는 어서 캠퍼스 내의 사람들과 친해지고 www.acmicpc.net #include #include using namespace std; char Map[600][600]; queue SearchQueue; int N, M; const int DX[4] = { -1, 0, 1, 0 }; const int DY[4] = { 0, -1, 0, 1 }; int BFS(int StartX, int StartY) { int Count = 0; SearchQueue.emplace(StartX, StartY); while (!Se..
11279번: 최대 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net #include #include using namespace std; priority_queue MaxHeap; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; for (int i = 0; i > Input; if (Input == 0) { if (MaxHeap.empty()) {..
17626번: Four Squares 라그랑주는 1770년에 모든 자연수는 넷 혹은 그 이하의 제곱수의 합으로 표현할 수 있다고 증명하였다. 어떤 자연수는 복수의 방법으로 표현된다. 예를 들면, 26은 52과 12의 합이다; 또한 42 + 32 + 1 www.acmicpc.net #include #include #include using namespace std; int DP[50001]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; for (int i = 1; i
11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net #include using namespace std; int DP[1001]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int N; cin >> N; DP[1] = 1; for (int i = 2; i