전체 글 223

백준 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..

백준 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..

백준 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..

백준 1620번 나는야 포켓몬 마스터 이다솜(C++)

문제문제가 너무 길어서 잘랐어요 여기만 읽어도 풀 수 있습니다. (난이도는 실버 4)정답 코드#include #include #include #include using namespace std; map dic; // int s_to_num(string s) // { // istringstream ss(s); // int x; // ss >> x; // return (x); // } string arr[1000000]; int main() { ios :: sync_with_stdio(0); cin.tie(0); cout.tie(0); int in_num; int f_num; string s; cin >> in_num >> f_num; for (int i = 1; i > s; arr[i] = s; dic.i..

728x90