-
[BOJ] 2231 : 분해합
2231 : 분해합 풀이 각 자리수의 최대값이 9이므로 [n-9*자릿수, n] 구간만 조사해도 된다! 코드 #include <stdio.h> int n, i, j, cnt, sum; int main() { scanf("%d", &n); i = n; while (i) i /= 10, cnt++; for (i = n - 9 * cnt; i < n; i++) { sum = i; for (j = i; j; j /= 10) sum += j % 10; if (sum == n) break; } printf("%d", i != n...
-
[BOJ] 2504 : 괄호의 값
2504 : 괄호의 값 풀이 뚜룹뚜빠라빠라 코드 #include <stdio.h> #include <stack> using namespace std; int sum, tmp = 1; char str[33]; stack<char> stk; int main() { scanf("%s", str + 1); for (int i = 1; str[i]; i++) { switch (str[i]) { case '(': btmp *= 2, stk.push('('); break; case '[': tmp *= 3, stk.push('['); break; case ')': if (str[i - 1] == '(') sum += tmp; if (stk.empty()) return !printf("0"); if (stk.top() == '(') stk.pop();...
-
[BOJ] 2530 : 인공지능 시계
2530 : 인공지능 시계 풀이 오.바.와.치 코드 #include <stdio.h> int main() { int a, b, c, d; scanf("%d %d %d %d", &a, &b, &c, &d); c += d; b += c / 60, c %= 60; a += b / 60, b %= 60; a %= 24; printf("%d %d %d", a, b, c); return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제,...
-
[BOJ] 2460 : 지능형 기차
2460 : 지능형 기차 풀이 이보게 풀이를 찾아온 자네! 입력을 어떻게 받을지 고민하는 표정이군. scanf는 입력 파일의 끝을 만나면 End Of File (EOF)를 리턴한다네. 그리고 EOF는 대부분의 컴파일러에서 상수값 -1로 정의되어있지! (컴파일러 마다 다르게 동작할 수도 있네만) 대부분의 환경에서 -1은 int형에서 111..111(2)로 저장된다네. (부호 비트가 1로 켜지는 셈이지!) 자세한 것은 위키피디아를 참고하게나. 따라서 111...111(2)를 ~ 연산자로 비트반전 시켜주면 0이 된다네! 그러므로 EOF를 만나면 while (0)이 되어 반복문이 종료되는 것이지! 하지만 바람직한 풀이는 while (scanf() !=...
-
[BOJ] 1676 : 팩토리얼 0의 개수
1676 : 팩토리얼 0의 개수 풀이 2랑 5의 개수를 세어주면 되는데 어차피 5의 개수가 2의 개수보다 항상 적기 때문에 5의 개수만 세어주어도 된다. 코드 #include <stdio.h> int n, c; int main() { scanf("%d", &n); while (n) n /= 5, c += n; printf("%d", c); return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이
-
[BOJ] 2075 : N번째 큰 수
2075 : N번째 큰 수 풀이 음 뭔가 풀이가 로또 뽑는 거 같군 코드 #include <stdio.h> #include <queue> using namespace std; int n; priority_queue<int> pq; int main() { scanf("%d", &n); for (int a, i = 0; i < n*n; i++) { scanf("%d", &a); pq.push(-a); if (pq.size() > n) pq.pop(); } printf("%d", -pq.top()); return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제...
-
[BOJ] 1947 : 선물 전달
1947 : 선물 전달 풀이 오랜만에 정상적인 풀이!! 더 자세히 알고 싶다면 구글에 완전순열 또는 교란을 검색해 보자! 증명 D[n] = (n-1) * (D[n-1] + D[n-2]) 자연수 1~n에 n+1을 더해서 완전순열을 만들어 보자. n+1은 1~n 중의 어떤 수 k의 자리에 놓인다. 이러한 k는 1부터 n까지 총 n개가 있을 수 있다. 그리고 우리는 이후의 상황을 다음의 두 경우로 나눌 수 있다. 1. n+1이 k의 자리에, k가 n+1의 자리에 놓이는 경우: k와 n+1을 제외한 나머지 n-1개의 수로...
-
[BOJ] 1547 : 공
1547 : 공 풀이 자자~ 돈 놓고 돈 먹기~ 코드 #include <stdio.h> #include <algorithm> int n, x, y, a[4] = { 0,1 }; int main() { scanf("%d", &n); while (n--) scanf("%d %d", &x, &y), std::swap(a[x], a[y]); for (n = 1; n <= 3; n++) if (a[n]) printf("%d", n); return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이
-
[BOJ] 1159 : 농구 경기
1159 : 농구 경기 풀이 사실 그냥 체킹 배열에 카운트 해줘도 되는데 map 안 쓴지가 오래돼서 써봤다 ㅎㅎ 코드 #include <cstdio> #include <map> using namespace std; int n; char a[155]; map<char, int> s; int main() { scanf("%d", &n); while (n--) scanf("%s", a), s[a[0]]++; for (auto it : s) if (it.second >= 5) putchar(it.first), n++; if (n == -1) printf("%s", "PREDAJA"); return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨,...
-
[BOJ] 1057 : 토너먼트
1057 : 토너먼트 풀이 My life for Aiur! 코드 #include <stdio.h> int n, a, b, c; int main() { scanf("%d %d %d", &n, &a, &b); while (a != b) a = a/2+a%2, b = b/2+b%2, c++; printf("%d", c); return 0; } 아무말 백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이