#include <iostream>
#include <algorithm>
using namespace std;
void remove(int A[], int B[],int n); //겹치는선의 개수를 찾고 가장 큰 선을 지움
bool sun(int A[], int n); //겹치는 선이 있는지를 판단
int main() {
int n;
cin >> n;
int A[40000] = { 0 };
for (int i = 0; i < n; i++) {
cin >> A[i];
}
int B[40000] = { 0 }; //겹치는 선의 개수
int count = 0;
while (1) {
remove(A, B, n);
count++;
if (sun(A, n) == true) {
break;
}
}
cout << n - count;
}
void remove(int A[], int B[],int n) {
int index = 0;
for (int i = 1; i <= n; i++) {
int c = 0;
for (int j = 1; j <= n; j++) {
if (j > i && A[i-1] > A[j-1]) {
c++;
}
}
B[index] = c;
index++;
}
sort(B, B + n);
B[n - 1] = 0;
}
bool sun(int A[], int n) {
for (int i = 0; i < n; i++) {
if (A[i] != 0)
return false;
}
return true;
}


'Member > 홍혁진' 카테고리의 다른 글

데브시스터즈 2번  (0) 2019.09.28
데브시스터즈 1번  (0) 2019.09.28
[백준]1781 컵라면(시간초과)  (0) 2019.07.22
[백준]1080 행렬(실패...)  (0) 2019.07.22
[백준]10610 30  (0) 2019.07.19

#include <iostream>
using namespace std;
int cup[2000000] = { 0 };
int dead[2000000] = { 0 };

int main() {
 int N;
 cin >> N;
 int cnt = 0;
 int index;
 for (int i = 0; i < N; i++) {
  cin >> dead[i] >> cup[i];
 }
 for (int i = 1; i <= N; i++) {
  int max = 0;
  for (int j = 0; j < N; j++) {
   if (dead[j] >= i) {
    if (cup[j] > max) {
     max = cup[j];
     index = j;
    }
   }
  }
  cup[index] = 0;
  cnt += max;
 }
 cout << cnt;
}

'Member > _1XX_______' 카테고리의 다른 글

백준 1002번 터렛  (0) 2019.08.06
백준 2217번 로프  (0) 2019.07.19
백준 1059번 수2  (0) 2019.07.19
백준 1439번 뒤집기  (0) 2019.07.09
코드업 1098번 설탕과자 뽑기  (0) 2019.07.09
#include <iostream>
using namespace std;
int A[200000]; //데드라인
int B[200000]; //받는 컵라면 개수
int main() {
int N; //문제의 개수
cin >> N;
for (int i = 0; i < N; i++) {
cin >> A[i] >> B[i];
}
int ramen = 0;
int c = 0;
for (int i = 1; i <= N; i++) {
int max = 0;
for (int j = 0; j < N; j++) {
if (A[j] >= i) {
if (B[j] > max) {
max = B[j];
c = j;
}
}
}
B[c] = 0;
ramen += max;
}
cout << ramen;
}


'Member > 홍혁진' 카테고리의 다른 글

데브시스터즈 1번  (0) 2019.09.28
[백준] 반도체설계  (0) 2019.07.23
[백준]1080 행렬(실패...)  (0) 2019.07.22
[백준]10610 30  (0) 2019.07.19
[백준]2217 로프  (0) 2019.07.19
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
//한수= 각자리수가 행렬이 되는 수
//ex)123,135,159
//99이하는 모두 다 한수
#include<iostream>
using namespace std;
int main()
{
    int n;
    int num[3];//각자리의 수를 저장하기위함
    cin >> n;
    int count = 0;
    for (int i = 1; i <= n; i++)
    {
        if (i < 100)//99이하는 모두 다 한수
        {
            count = i;
        }
 
        else if (i > 100)
        {
            
            int k = 0;
            int j = i;
            while (j != 0)
            {
                num[k] = j % 10;
                j /= 10;
                k++;
            }
            if (num[0- num[1== num[1- num[2])
            {
                
                count++;
            }
        }        
    }
    cout << count;
 
}
 
cs


'Member > onekey' 카테고리의 다른 글

코드업_1411 빠진카드  (0) 2019.07.16
백준_1668 트로피진열  (0) 2019.07.13
백준_1019 책페이지  (0) 2019.07.13
백준_1439 뒤집기  (0) 2019.07.11
코드업_1098 설탕막대뽑기  (0) 2019.07.11
#include <iostream>
#include <string>
using namespace std;
int N, M;
void turn(int A[][50], int N, int M);
bool same(int A[][50], int B[][50]);
int main() {
cin >> N >> M;
int A[50][50] = { 0 };
int B[50][50] = { 0 };
for (int i = 0; i < N; i++) {
string s;
cin >> s;
for (int j = 0; j < M; j++) {
if (s[j] == '0') { A[i][j] = 0; }
else { A[i][j] = 1; }
}
}
for (int i = 0; i < N; i++) {
string s;
cin >> s;
for (int j = 0; j < M; j++) {
if (s[j] == '0') { B[i][j] = 0; }
else { B[i][j] = 1; }
}
}
if (N < 3 || M < 3) { //행렬이 3*3보다 작을때
if (same(A, B) == true)
cout << 0;
else
cout << -1;
}
int count = 0;
bool check = false;
for (int i = 0; i <= N - 3; i++) {
for (int j = 0; j <= M - 3; j++) {
turn(A, i, j);
count++;
check = same(A, B);
if (check == true) {
cout << count;
return 0;
}
}
}
if (check == false) //모든경우를 뒤집어보고 나서도 false면 불가능
cout << -1;
}
void turn(int A[][50], int a, int b) { //3*3칸을 뒤집는 함수
for (int i = a; i < a + 3; i++) {
for (int j = b; j < b + 3; j++) {
if (A[i][j] == 0)
A[i][j] = 1;
else if (A[j][j] == 1)
A[i][j] = 0;
}
}
}
bool same(int A[][50], int B[][50]) { //A와B가 같은지 판별
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
if (A[i][j] != B[i][j]) {
return false;
}
}
}
return true;
}


'Member > 홍혁진' 카테고리의 다른 글

[백준] 반도체설계  (0) 2019.07.23
[백준]1781 컵라면(시간초과)  (0) 2019.07.22
[백준]10610 30  (0) 2019.07.19
[백준]2217 로프  (0) 2019.07.19
[백준]1065 한수  (0) 2019.07.19

+ Recent posts