[문제] 10829번: 이진수 변환 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000) www.acmicpc.net [문제 풀이] 풀이 1) 스택을 사용하여 2로 나눈 나머지를 저장하고 이를 pop하여 거꾸로 출력함 풀이 2) 재귀 호출을 사용하여 나머지가 0 혹은 1이면 출력하고 그렇지 않으면 재귀호출 시행 [코드] - 풀이 1 #include #include using namespace std; int main() { stack s; long a; cin>>a; do{ s.push(a%2); a/=2; }while(a!=0); do{ cout
# 수식의 평가 - 수식(expression): 연산자(operator)와 피연산자(operand)로 구성된 문장 - 연산자의 종류: 산술 연산자(arithmetic), 논리 연산자(logic), 대입 연산자(assignment) 등 - 피연산자의 종류: 변수(variable) 또는 상수(constant) - 수식의 표기법 # 연산자 우선순위 - 우선순위 (precedence): 아래의 표에서 번호가 높을수록 우선순위가 높음 - 결합성(associativity) 규칙: 연산의 방향을 결정 (왼 → 오 / 오 →왼) # 중위 표기법 vs 후위 표기법 # 후위 수식 계산 알고리즘 - 후위 수식의 평가: (5 7 * 9 + 3 4 / -) - 수식 평가 스택 > stack: 정수 배열로 선언된 수식 평가 스택..
# 스택 - stack: 선형 리스트의 특별한 형태로, 책 또는 접시 같은 것들을 쌓아 둔 것을 의미 - 후입 선출(LIFO: Last-In, First-Out) 구조 - 함수 호출, 문법 검사, 연산식 평가 등에 활용 - 다음과 같이 원소들의 리스트로 정의 가능 S = [a0, a1, ...., an-1] - push: 원소 추가 / pop: 원소 삭제 - ex) 스택에 원소 a, b, c, d, e 삽입 및 삭제 # 스택 예제 (1) Balanced Parentheses - 괄호의 짝이 맞는지 확인하는 예제 [코드] // c++로 구현한 check_balance 함수 void check_balance(char* p) { struct Stack stack; create(stack, LINESIZE); ..