1. 이론 이 알고리즘은 중위 표기법에서 후위 표기법으로 전환한 후에 후위표기법을 실질적으로 계산하는 알고리즘이다. 이 부분은 전에 포스팅한 중위 표기법의 후위 표기법 변환 알고리즘보다는 훨씬 간단하다. 예외와 구현이 나름 쉬웠다. 이 부분은 학교 수업으로 공부하였다. - 후위표기식의 계산 알고리즘 후위표기식의 계산 알고리즘은 다음과 같다. 숫자가 나오면 무조건 스택에 Push 연산자가 나오면 스택에서 두개의 피연산자를 꺼내 계산한다. 연산자가 뺄셈 혹은 나눗셈인 경우 순서를 생각해야 한다. 이런 경우를 대비해 스택에서 나중에 꺼내진 연산자로부터 먼저 꺼내진 연산자에 대한 연산을 실행한다 계산된 연산자는 다시 스택에 넣어준다. 후위 표기식이 다 끝났다면 스택에 남아있는 피연산자가 식의 답이다. 이전 포스..
1. 이론 작년쯤에 공부했던 알고리즘을 교내 수업에서 만났고, 내가 얼마나 공부를 부실하게 했는지도 알게 되었다. 대충 이론만 기억나는 상태여서 처음부터 다시 손으로 쓰면서 공부했다. 많은 책과 인터넷 자료들을 참고 하였으며 최대한 예외를 예상하여 작성하여 알고리즘을 써내려 갔다. - 중위 표기법 중위 표기법이란 이름 그대로 피연산자들 사이에 연산자가 있는 표기법을 말한다. 우리가 기존에 알고있는 수식이 전부 중위 표기법이다. 다음 식을 보자. 17 + 5 위의 간단한 식을 보면 두개의 피연산자 (숫자) 사이에 연산자 (계산 기호) 가 있다. 연산자 옆의 두개의 피연산자로 계산을 하는 방식이 중위 표기법이다. - 후위 표기법 후위 표기법은 중위 표기법과는 다르게 피연산자들 뒤에 연산자가 있는 표기법을 말..
1. 개요 항상 무언가를 공부하거나 새로운 지식을 학습할 때, 알아야하는 것은 내가 학습하려는 것이 어디에 사용되고, 본질이 무엇인지에 대해서이다. 그러나 이것이 내가 공부하는 모든 지식에 적용되지는 않는 것 같다. 그 중 하나가 바로 자료구조이다. (적어도 나에게는) 자료구조라는 과목이 얼마나 중요한지는 유튜브에 '개발'이나 '프로그래밍' 이라는 키워드로 3분동안만 검색해봐도 알 수 있는 사실이다. 그렇게 악명 높은 코딩 테스트도 가장 기초가 되는 부분이 바로 자료구조라는 사실은 조금만 찾아봐도 알 수 있다. 그러나 나는 아직도 내가 배우는 이 자료구조들이 실무에서 어떤 모습으로 사용되는지는 알지 못한다. 그저 원리와 구현 방법 그리고 이론으로 설명되는 활용 방법과 응용 문제들을 푸는 수준이다. "이런..
1. 문제와 실행결과 예시 백준 알고리즘을 풀어보았다...... 단계별로 풀기로 쭉 풀이를 진행하였지만 기초적인 문제를 제외하고 자료구조나 알고리즘같은 응용문제를 블로그에 정리할까 한다 ㅎㅎ 문제는 다음과 같다. 출처: https://www.acmicpc.net/problem/10828 보다시피 기본적인 스택 연산을 구현하는 스택 문제이다. 조금 다른 점이 있다면 입력받은 수 만큼 명령어를 받고 명령어를 실행하는 것? 이것을 제외하면 책에서 읽은 (학교에서 배운) 스택문제와 똑같다. 나름 연결리스트를 사용하고 싶었지만, 최대 입력값이 주어졌기에, 배열로 구현했다. 클래스를 사용한 이유는 복습도 하고 클래스 공부도 할겸 ㅎㅎ...... 같은 문제를 연결리스트로 구현한 스택으로 풀어 다시 이 블로그에 올렸으..
- Total
- Today
- Yesterday
- 후기
- Python
- 코테
- CJ Olivenetworks
- 구현
- 알고리즘
- 백준 알고리즘
- 백준
- CJ 올리브네트웍스
- 백준알고리즘
- C언어
- Programmers
- 기록지
- 안드로이드 프로그래밍
- 자료구조
- Spring Boot
- XML
- 안드로이드 스튜디오
- 코딩
- BaekJoon
- 육군
- 개발자
- java
- 비트코인
- 문자열
- c++
- 코딩테스트
- spring
- 프로그래머스
- CJ
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |