일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 너비우선탐색
- 그래프
- 코딩
- 브루트포스
- coding
- vector
- 구현
- 정석학술정보관
- 컴공과
- 스택
- Stack
- 알고리즘
- DP
- cs
- 북리뷰
- Operating System
- Computer science
- 컴퓨터공학과
- 백준
- 오에스
- 컴공
- c++
- 자료구조
- 개발
- 정석
- 문제풀이
- bfs
- 오퍼레이팅시스템
- 코테
- OS
- Today
- Total
목록coding (150)
Little Jay
처음에 시간 초과가 떠서 봤더니 ios_base::sync_with_stdio(0); cin.tie(0); 이거 두개 안해서 틀렸었다. 항상 시간 초과가 나면 킹받는다. 이분(이진)탐색 즉, Binary Search를 이용하는 문제이다 자료구조를 배우긴 했지만 Binary Search를 배우지는 않아서 algorithm 헤더에 있는 binary_search 메소드를 사용했다 이 부분 구현은 혼자 따로 해봐야 겠다 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); int n, m, x; cin >> n; vector v; for (int i = 0; i < n; i++) {..
컴공을 전공하면 정수론을 배운다 정수론에서 가장 중요한 것은 개인적으로 모듈러 연산인 것 같다 (이거에 대해서 한 학기동안 배운 것 같다) 모듈러 연산은 나머지 연산이며 이거는 코딩할때 간단히 나머지 연산자만 사용하면 된다 이 문제를 풀때 조건을 제대로 안읽어서 m, r 값을 뭐라고 해야할지 한참 고민했었다. 문제만 제대로 읽었으면 쉽게 풀었을 것 같다 나중에 한번에 나머지 연산을 해주는 것 보다는 바로바로 숫자에 대해서 나머지 연산을 해주는 것이 좋다 안그러면 long long을 넘어가는 정수가 저장되어 에러가 날 수도 있다 #include #include using namespace std; #define r 31 #define m 1234567891 int main() { int n; cin >> ..
처음에는 무지성으로 풀다가 음수인 숫자를 못보고 잘못 풀었음을 느꼈다 음수를 받을 때 어떻게 하면 좋을지 좀 많이 고민했었는데 이분 탐색으로도 안풀려서 한시간 고민하다가 안되서 결국 구글링 C++의 algorithm에는 다양한 기능들이 있다 그 중 lower_bound, upper_bound라는 기능들이 있는데 이거를 활용하면 정말 간단하게 풀리는 문제였다 #include #include #include using namespace std; int main() { int n, m, x, y; cin >> n; vector v; for (int i = 0; i > x; v.push_back(x); } sort(v.begin(), v.end()); cin >> m; vector..
10보다 작은 자연수 중에서 3 또는 5의 배수는 3, 5, 6, 9 이고, 이것을 모두 더하면 23입니다. 1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면 얼마일까요? result = 0 for k in range(1,1000): if k % 3 == 0 or k % 5 == 0: result += k k += 1 print(result) 사실 이 방법은 노가다로 푸는 것 등차 급수로 풀 수 있다고 하는데 계절 학기 끝나면 다시 풀어봐야겠다 이제 3학년이니까 열심히 코딩 해야지
에라토스테네스 체를 이용해서 구하는 문제 처음에는 쉽게 소수 구하는 알고리즘을 적용했는데 (앞 수랑 비교하는거) 이러다보니 시간 초과가 발생했다. 아무래도 효율적인 알고리즘을 찾다가, 결국 구글에 검색을 해보니 에라토스테네스의 체라는 알고리즘이 있었다. 다른분들의 코드를 참고해서 작성했다. #include #include using namespace std; bool primeArr[1000001]; int main(void) { int m, n; cin >> m >> n; for (int i = m; i
저번에 푼 요세푸스문제 0과 동일하다 #include #include using namespace std; int main() { cin.tie(0); cout.tie(0); ios::sync_with_stdio(false); int n, k; queue q; cin >> n >> k; for (int i = 1; i
얘도 큐를 사용하는 문제인데 벡터를 사용해서 시간 초과가 떴었던 문제 #include #include using namespace std; int main() { cin.tie(0); cout.tie(0); ios::sync_with_stdio(false); int n; queue q; cin >> n; for (int i = 1; i 1) { q.pop(); q.push(q.front()); q.pop(); } cout
#include #include using namespace std; int main() { int testcase, a, b; cin >> testcase; for (int p = 0; p > a >> b; int repeated = 0; for (int i = a; i
벡터로 풀기 #include #include #include using namespace std; int main() { int testCase; cin >> testCase; vector arr; int input; for (int i = 0; i > input; arr.push_back(input); } sort(arr.begin(), arr.end()); cout a; int N = 7; for (int i = 0; i > ary[k]; } sort(ary, ary + 10); cout