https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net Stack를 활용하여 문제를 해결하였습니다. 단순이 '(' 나 '[' 일때는 스택에 넣어주고, ')', ']'를 만나면 스택에 있는 것과 비교해서 있으면 pop 후 넘어가고 없으면 break 시켜서 판별하였습니다. #include #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.t..
https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net queue STL를 사용하여 풀었습니다. #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(nullptr); int n; queue q; cin >> n; for(int i = 0;i> s; if (s == "push") { int input; cin >> input; q.push..
Stack STL 방식 하나와 배열로 스택을 구현한 방식 두가지로 문제를 풀었습니다. Stack STL 방식 더보기 #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(nullptr); int n; stack Stack; cin >> n; for(int i = 0;i> s; if (s == "push") { int input; cin >> input; Stack.push(input); } else if (s == "top") { if (Stack.empty()) cout
문제 : https://www.acmicpc.net/problem/1406 https://blog.encrypted.gg/932?category=773649 님의 강의를 보고 문제를 풀어봤습니다. 물론 제 개인적으로 만든 연결리스트 코드도 있습니다. 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net [실전 알고리즘] 0x04강 - 연결 리스트 안녕하세요, 바킹독이에요. 배열은 복습 잘 하셨나요? 이번 시간에는 연결 리스트라는 것을 같이 배워보겠습니다. 배열에서 한 것 처럼 연결 리스트가 무엇인지 알아보고, 같이 ..
https://www.acmicpc.net/problem/1904 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 이건 수를 나열해보면 공식을 찾아볼 수 있습니다. 1 = 1 2 = 2 3 = 3 4 = 5 5 = 8 6 = 13 이걸 보면 N(n) = N(n-1) + N(n-2) 인 것을 볼 수 있습니다. 따라서 그걸 코드로 구현해주면 됩니다. 단, 숫자가 크기 때문에 자료형을 잘 선택해주어야 합니다. #pragma warning(disable:4996) #include long long num[1000001] ..
그냥 구현하면 되더라구요.. 주는거 구현하면 됩니다.. https://www.acmicpc.net/problem/9184 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net #pragma warning(disable:4996) #include #define MAX 51 int num[MAX][MAX][MAX] = { 1, }; int w(int a, int b, int c) { if (a 20) { return w(20, 20, 20); } if (num[a][b][c] != 0) { return num[a][b][..
사용언어 : C++ 문제 오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍으로 구하는 알고리즘을 배웠다. 재귀호출에 비해 동적 프로그래밍이 얼마나 빠른지 확인해 보자. 아래 의사 코드를 이용하여 n의 피보나치 수를 구할 경우 코드1 코드2 실행 횟수를 출력하자. 피보나치 수 재귀호출 의사 코드는 다음과 같다. fib(n) { if (n = 1 or n = 2) then return 1; # 코드1 else return (fib(n - 1) + fib(n - 2)); } 피보나치 수 동적 프로그래밍 의사 코드는 다음과 같다. fibonacci(n) { f[1]
먼저 첫번째로 Position을 통한 파싱 방법이다. 아래의 코드를 보게 되면, Fpos, Lpos 두개의 변수를 선언하게 되는데, 각각 find_first_not_of, find_first_of 를 통해서 값을 받는다. size_t find_first_not_of(const char* s, size_t pos); -> str에서 s의 값이 아닌 첫 번째 위치 반환. size_t find_first(const char* s, size_t pos); -> str에서 s의 값이 존재하는 첫 번째 위치 반환. 이렇게 반환한 값을 토대로, substr을 하면서 값을 나눈다. #include #include #include void parse_to_position(const string& str, vector& ..
- Total
- Today
- Yesterday
- 드림핵
- 더블버퍼링
- BFS
- 스레드풀
- 링크드 리스트
- 지뢰찾기
- 고양이
- c++
- 레지스터
- 자료구조
- 백준
- queue
- 컨퍼런스
- 워셜알고리즘
- 멀티쓰레드
- 학교
- 알고리즘
- 개발
- 인제대학교
- 정보보안
- 야경
- STL
- Dreamhack
- 시스템보안
- Select모델
- 보안
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |