끄적끄적 코딩
article thumbnail
[C++] 백준 11286번 절댓값 힙
알고리즘 2019. 9. 10. 00:11

우선순위 큐에서 값을 뽑아낼 때 절대값이 낮은 순대로 뽑는 문제입니다. 절댓값을 기준으로하여 내림차순으로 뽑아야하므로 다음처럼 선언해줍니다. priority_queue pq; pair의 첫번째는 절댓값이고, 두번째는 원래 값입니다. 그 뒤의 것들은 내림차순을 의미합니다. #include #include #include #include #include #include using namespace std; int main(int argc, char *argv[]) { int n; int num; priority_queue pq; scanf("%d", &n); while (n--) { scanf("%d", &num); if (num == 0) { if (pq.empty()) { printf("0\n"); } ..

article thumbnail
[C++] 백준 1927번 최소 힙
알고리즘 2019. 9. 9. 23:32

우선순위 큐 문제입니다. 1. 수가 0일때 - 비어있으면 0출력 - 비어있지 않으면 pq.top 출력, pq.pop 2. 수가 0이 아니면 pq.push 오름차순으로 출력하기 때문에 다음과 같이 선언해줍니다. 오름차순 형태 priority_priority_queue pq; 기본 형태 priority_priority_queue pq; #include #include #include #include #include #include using namespace std; int main(int argc, char *argv[]) { int n; int num; priority_queue pq; scanf("%d", &n); while (n--) { scanf("%d", &num); if (num == 0) { ..

article thumbnail
[C++] 백준 11279번 최대 힙
알고리즘 2019. 9. 9. 23:25

우선순위 큐로 문제를 풀었습니다. 1. 수가 0일때 - 비어있으면 0출력 - 비어있지 않으면 pq.top 출력, pq.pop 2. 수가 0이 아니면 pq.push #include #include #include #include #include #include using namespace std; int main(int argc, char *argv[]) { int n; int num; priority_queue pq; scanf("%d", &n); while (n--) { scanf("%d", &num); if (num == 0) { if (pq.empty()) { printf("0\n"); } else { printf("%d\n", pq.top()); pq.pop(); } } else { pq.push..

article thumbnail
[C++] 백준 10816번 숫자 카드 2
알고리즘 2019. 9. 9. 23:15

A수열과 B수열이 있을 때 A수열에 B수열의 값이 몇개 있는지 찾는 문제입니다. A수열을 vector에 전부 넣고 sort해줍니다. 그리고 upper_bound - lower_bound로 B수열의 수를 A수열에서 찾으면 개수가 나옵니다. #include #include #include #include #include using namespace std; int main(int argc, char *argv[]) { int num; int n, m; int count; scanf("%d", &n); vector v(n); for (int i = 0; i < n; ++i) { scanf("%d", &v[i]); } sort(v.begin(), v.end()); scanf("%d", &m); for (int ..

article thumbnail
[C++] 백준 1920번 수 찾기
알고리즘 2019. 9. 9. 22:53

A수열과 B수열이 주어졌을 때 A수열에 B수열 값이 있는지 찾는 문제입니다. A수열을 배열에 넣고 sort한 후에 B수열의 수를 하나씩 A수열을 binary_search를 하여 찾았습니다. #include #include #include #include #include using namespace std; int main(int argc, char *argv[]) { int arr[100010]; int num; int n, m; scanf("%d", &n); for (int i = 0; i < n; ++i) { scanf("%d", &arr[i]); } sort(arr, arr + n); scanf("%d", &m); for (int i = 0; i < m; ++i) { scanf("%d", &num)..

article thumbnail
[C++] 백준 1764번 듣보잡
알고리즘 2019. 9. 9. 20:26

문자열 처리 문제입니다. N개의 문자들과 M개의 문자들에서 같은 문자를 찾아서 개수와 문자를 출력해야 합니다. vector v1에 N개의 문자들을 전부 넣고 정렬해줍니다. 그리고 M개의 문자를 찾을 때 binary_search를 통해 vector v1안의 값과 비교를 합니다. 같을 경우 vecotr v2에 문자를 넣어줍니다. 최종적으로 vector v2를 정렬하고 v2의 사이즈를 출력한 후, 문자들을 출력해주었습니다. #include #include #include #include #include using namespace std; int main(int argc, char *argv[]) { int n, m; string s; vector v1; vector v2; cin >> n >> m; v1.r..

article thumbnail
[C++] 백준 1032번 명령 프롬프트
알고리즘 2019. 9. 9. 20:06

문자열 처리 문제입니다. 문자열 끼리 비교해서 다른 부분을 배열에서 체크를 해두었습니다. 그리고 체크된 부분은 ?로 출력해서 문제를 풀었습니다. #include #include #include using namespace std; int main(int argc, char *argv[]) { int n; int check[60]; string s[60]; memset(check, 0, sizeof(check)); cin >> n; cin >> s[0]; for (int i = 1; i > s[i]; for (int j = 0; j < s[0].length(); ++j) { if (s[i][j] != s[i - 1][j]) { check[j] = 1; } } } for (in..

article thumbnail
[C++] 백준 1100번 하얀 칸
알고리즘 2019. 9. 9. 19:56

체스판에서 하얀칸에 말이 몇마리 있는지 찾는 문제입니다. 0,0은 하얀칸이며, F는 말입니다. 하얀색과 검정색이 차례대로 나오므로 하얀칸을 구하기위해서 (i+j) % 2 == 0이면 하얀칸입니다. (i, j는 8*8배열에 대한 반복문) 하얀칸일 때 'F'면 카운트를 증가해줬습니다. #include #include #include using namespace std; int main(int argc, char *argv[]) { int count = 0; string s; for (int i = 0; i > s; for (int j = 0; j < 8; ++j) { if ((i + j) % 2 == 0 && s[j] == 'F') { ++count; } } } cout

검색 태그