일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 입출력 패턴
- Django Nodejs 차이점
- c++
- 자료구조
- 백준
- 프레임워크와 라이브러리의 차이
- 입/출력
- 장고란
- vscode
- string 메소드
- 구조체와 클래스의 공통점 및 차이점
- 이분그래프
- scanf
- iOS14
- UI한글변경
- Django란
- 2557
- EOF
- double ended queue
- string 함수
- Django의 편의성
- 알고리즘 공부방법
- getline
- 시간복잡도
- 매크로
- 엑셀
- k-eta
- correlation coefficient
- 표준 입출력
- 연결요소
- Today
- Total
목록알고리즘/백준풀이2. 스택 (4)
Storage Gonie
문제 풀이 # C++(내가 푼 방법) - 스택의 내용을 모두 출력하거나 할 때 len = stack.size() for(i =0; i> str; cin >> N; // 커서가 맨 뒤에 있는 상태로 스택의 초기상태를 만들어 주는 것 for (int i = 0; i < str.size() ; i++) left_st.push(str[i]); // 명령어가 수행되는 부분 while(N--){ string cmd..
문제 풀이 # C++(내가 푼 방법) - 가장 간단한 입력을 통해 생각을 해보자. ex) ( ( ) ) = 2개, ( ( ) ( ) ) = 3개 - 이것들은 어떻게 계산될 수 있을까? - '(' 이면 스택에 넣고 - '( )' 레이저가 나오면 스택에서 '('를 하나 빼고 스택에 있는 원소의 개수를 정답에 더한다. - ')'가 나오면 스택에서 '('를 하나 빼고 정답에 1을 더한다. #include #include using namespace std; int calculateAnswer(string str) { int answer = 0; stack st; for (int i = 0; i < str.size(); i++) { if (str[i] == '(') //막대의 시작인 경우 st.push('(');..
문제 풀이 방법1. 하나씩 짝을 찾는 방법 => O(N^2)의 시간복잡도 방법2. 스택을 이용하여 짝이 맞는지 확인하는 방법 => O(N)의 시간복잡도 방법3. 개수를 세는 방법 => O(N)의 시간복잡도, 스택을 사용하지 않아도 되므로 구현이 용이 # C++ #include using namespace std; int main(void) { ios::sync_with_stdio(false); int N; string str; // 입력을 받기위한 변수 int cnt = 0; // 개수를 세기위한변수 cin >> N; while (N--) { cin >> str; for (int i = 0; i < str.size(); i++) { if (str[i] == '(') cnt += 1; else if (st..
문제 풀이 # C++(직접구현) #include using namespace std; struct Stack{ // 필수적으로 필요한 멤버변수 int data[1000]; // 데이터 저장 -> 문자열을 저장하고 싶으면 string 타입으로 변경한 뒤, 함수들의 return 형을 조금 수정해주면 된다. int size; // 여러 연산을 위해 필요함 // 생성자 : 멤버변수의 초기화를 담당한다. 이것이 존재하지 않으면 경고가 뜸. Stack() { size = 0; } void push(int n) { data[size] = n; size += 1; } int pop() { if (size == 0) return -1; else{ size -= 1; // pop 할 때 데이터를 따로 삭제해주는 작업은 없..