본문 바로가기
728x90

알고리즘/백준-실버31

백준 2583번 영역 구하기(C++) 문제정답 코드#include #include #include #include #include #include #include #include using namespace std; #define X first #define Y second int map[102][102]; int mx[4] ={0,1,0,-1}; int my[4] ={1,0,-1,0}; int all; int result[10000]; // void printmap(int col,int row) // { // for (int i=col -1; i >= 0;i--) // { // for (int j=0; j row >> snum; for(int i=0; i> .. 2023. 1. 5.
백준 2468번 안전영역(C++) 문제정답 코드#include #include #include #include #include #define X first #define Y second using namespace std; const int dx[]= {0,1,0,-1}; const int dy[]= {1,0,-1,0}; int main() { ios :: sync_with_stdio(0); cin.tie(0); int n; cin >> n; vector arr(n,vector(n,0)); vector vis(n,vector(n,0)); for (int i=0;i > arr[i][j]; } } int len = 1; int result = -1; int max = 1; while (result !=0) { result = 0; for (.. 2023. 1. 5.
백준 1012번(C++) 문제정답 코드#include #include #include #include using namespace std; const int mx[] = {0,1,0,-1}; const int my[] = {1,0,-1,0}; int main() { int t,m,n,k; cin >> t; int cnt = 0; for (int i =0; i > m >> n>> k; vector arr(n,vector(m,0)); vector vis(n,vector(m,0)); for (int j =0; j > x>> y; arr[y][x] = 1; } for (int iy = 0;iy < n;iy++) { for (int ix = 0;ix < m;ix++.. 2023. 1. 5.
백준 2178번 미로탐색 (C++) 문제최단 거리 이야기가 나온다는 것을 보고 bfs문제임을 알 수가 있다.정답 코드#include #include #include #include using namespace std; const int dx[] = {0,1,0,-1}; const int dy[] = {1,0,-1,0}; int main() { int n,m; string s; ios :: sync_with_stdio(0); cin.tie(0); cin >> n >> m; vector arr(n + 1,vector(m + 1,0)); vector vis(n + 1,vector(m + 1,0)); for (int i=0;i > s; for (int j=0;j < m; j++) { arr[i+ 1][j + 1] = .. 2023. 1. 3.
백준 4375번 1(C++) 문제처음에 문제 이해가 잘 안됐다.1로만 이루어졌다는게 무슨말인가 했는데 그냥 몇을 곱해서 1111 111111 11111111 이런식으로 만들라는 뜻이었다.3의 경우 배수로 이뤄지는 가장 짧은 1로 이뤄진 수는 111 이라서 이렇게 나온다.7인 111111 이런식정답 코드#include using namespace std; int A; long long result(long long n ) { if (n == 1 || A == 1) return (1); else { for (long long i =0;i < 10; i++) { if (((A * i) + n) % 10 == 1) { return (result(((A * i) + n)/10) +1); } } } } int main() { while (ci.. 2023. 1. 2.
백준 1929번 곱셈(C++) 문제문제는 간단해 보이지만 쉽게 풀리지 않는다.필수적으로 알아야 하는게 있는데지수법칙 : a^(n+m) = a^n * a^m모듈러 성질 : (a*b)%c = (a%c * b%c)%c이 두가지를 알아야만 한다.지수법칙은 아마 왠만하면 알 것 같은데 모듈러 성질은 곱해서 나누던 나눠서 곱하든 값은 같다는 것이다.증명은 수학자들이 해뒀으니 위키백과를 보자.그냥 구현 하면 시간초과 납니다.(왜 저 정답률이겠어요..)정답 코드#include #include using namespace std; typedef long long ll; int A,B,C; ll p(ll x) { if (x == 1) return (A%C); ll k = p(x/2)%C; if (x%2 == 0) return (k * k % C); e.. 2023. 1. 2.
백준 3986번 좋은단어 (C++)(부제 맞왜틀..) 문제정답 코드#include #include #include #include using namespace std; stack a; int check(string s) { if (s.size()%2 != 0) return (0); for (auto it : s) { if (a.empty()) a.push(it); else if (a.top() == it) a.pop(); else a.push(it); } char c1,c2; while (!a.empty()) { c1 = a.top(); a.pop(); if (a.empty()) return (0); c2 = a.top(); a.pop(); if (c1 != c2) { while (!a.empty()) { a.pop(); } return (0); } } r.. 2023. 1. 2.
백준 1940번 주몽(C++) 문제정답 코드#include #include #include using namespace std; vector input_ar; int main() { cin.tie(0); ios :: sync_with_stdio(0); int n,m,input; int cnt =0; cin >> n >> m; for (int i=0;i > input; input_ar.push_back(input); } sort(input_ar.begin(), input_ar.end()); for (int i =0; i i;j--) { if (input_ar[j] + input_ar[i] == m) cnt++; else if (input_ar[j] +input_ar[i] < m) b.. 2023. 1. 2.
백준 1213번 팰린드롬 만들기(C++) 문제정답 코드#include #include #include using namespace std; char result[52]; inta,b; intnext_two_same(char a,char b) { return (a == b); } int main() { string s; cin >>s; sort(s.begin(), s.end()); b = s.size() - 1; intnum = 1; int flag =0; int i =0; while (i = s.size()) { result[a] = s[i]; if (flag) { cout 2022. 12. 30.
728x90