일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 너비우선탐색
- 컴공
- OS
- 브루트포스
- 북리뷰
- 스택
- 그래프
- 개발
- Stack
- 오퍼레이팅시스템
- 코딩
- 정석학술정보관
- 코테
- Operating System
- 오에스
- DP
- 정석
- 알고리즘
- Computer science
- bfs
- 문제풀이
- 자료구조
- c++
- 컴공과
- cs
- 컴퓨터공학과
- 백준
- Today
- Total
목록문제풀이 (40)
Little Jay
문제를 보면 예전에 비문학 지문이 생각나는 문제이다 탐색에 대한 효율적인 알고리즘을 탐색하는 지문이었던 것 같다 찾아보니까 비슷한 흐름인 것 같다 2012년 6월 평가원 문제이다 궁금하다면 아래 참고 그와중에 20년에 알고리즘 문제 그 자체가 나와서 놀랐다 컴공 수시로 가려는 사람한테는 공짜 문제였을 듯 https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=magician_e&logNo=220388619293 ■ 2012년 6월 평가원 비문학 ■ 디스크 스케줄링 비문학 지문 읽는 방법 (가) 하드 디스크는 고속으로 회전하는 디스크의 표면에 데이터를 저장한다. 데이터... blog.naver.com 각설하고 먼저 최소 거리여야 하니까 벡터..
stack 자료구조를 배웠으면 풀 수 있는 것 같다. 옛날 자료구조 족보를 보다가 이 문제에 대한 의사코드를 물어보는 문제를 본 적이 있다. 간단하게 ( 가 들어올때만 push 시켜주고 아닐때는 stack에서 pop을 진행해줘서 마지막에 stack에 남아있는 데이터의 여부에 따라 답을 출력하면 되는 문제 #include #include #include using namespace std; int main() { int testCase; cin >> testCase; for (int i = 0; i > s; for (int k = 0; k < s.length(); k++) { if (st.empty() || s[k] == '('..
처음에 큐라고만 써있어서 생으로 QUEUE로만 구현하려고 하다가 이건 좀 아닌거 같은데라는 생각이 들어 우선순위 큐로 구현하였다 #include #include using namespace std; int main() { int testCase, x; cin >> testCase; int document, which; for (int i = 0; i > document >> which; int count = 0; queue q; priority_queue pq; for (int k = 0; k > x; q.push({ k, x }); pq.push(x); } while (!q.empty()) { int index = q..
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학년이니까 열심히 코딩 해야지
이 문제는 팩토리얼이라는 소리를 듣자마자 분명 계산해서 푸는것은 아니라고 직감했다. 10!만 되도 30만이 넘어갈텐데(맞나.....?) 문명 입력되는 n의 크기가 커지면 아무리 long long을 써도 저장을 못할것 같았다. string으로 접근하려고 했는데, 이것도 아닌것 같아서 고심을 해보았다. 결국 뒤의 0의 개수는 10이 몇번 나오는지에 따라 달렸다. 그러니까 팩토리얼을 계산할 필요 없이 그냥 n에서 2와 5가 얼마나 나오는지만 고민하면 되는 것이다. 제곱수일때만 생각을 해주면 되는 생각보다 간단한 문제였다. #include #include using namespace std; int main() { int n; int two = 0, five = 0; cin >> n; for (int i = 2..
에라토스테네스 체를 이용해서 구하는 문제 처음에는 쉽게 소수 구하는 알고리즘을 적용했는데 (앞 수랑 비교하는거) 이러다보니 시간 초과가 발생했다. 아무래도 효율적인 알고리즘을 찾다가, 결국 구글에 검색을 해보니 에라토스테네스의 체라는 알고리즘이 있었다. 다른분들의 코드를 참고해서 작성했다. #include #include using namespace std; bool primeArr[1000001]; int main(void) { int m, n; cin >> m >> n; for (int i = m; i
dp를 사용하면 쉽게 풀 수 있었던 문제 처음에 간단하게 nCr을 이용해서 풀었는데 어디서 틀린건지는 잘 모르겠어서 바로 dp로 문제를 풀어버렸다 #include using namespace std; int d[31][31]; int main() { cin.tie(0); cout.tie(0); ios::sync_with_stdio(false); for (int i = 0; i n >> k; cout
보호되어 있는 글입니다.
저번에 푼 요세푸스문제 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
Brute Force 알고리즘 문제 처음에 문제 이해 못해서 엄청 고생했지만 결국 분해합의 생성자는 입력된 값 보다 작다는거를 명심하고 풀기 #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int num, sum, temp; cin >> num; for (int i = 1; i < num; ++i) { sum = i; temp = i; while (temp) { sum += temp % 10; temp /= 10; } if (num == sum) { cout