본문 바로가기

Algorithm11

중위표기식을 후위표기식으로 바꾸는 알고리즘(stack 이용) 중위표기법(infix notation) 연산자를 피연산자의 가운데 표기하는 방법 ex) A+B 후위표기법(postfix notation) 연산자를 피연산자 뒤에 표기하는 방법 ex) AB+ Why 후위표기법을 쓰는가? -> 컴퓨터 입장에서 생각해보자. 중위표기법으로 연산할 때는 연산의 우선순위를 찾기 쉽지 않고, 어디까지 연산을 가해야하는지를 다 찾아야 하기 때문에 연산속도가 느리다. 즉, 후위표기법이 중위표기법보다 연산속도가 더 빠르다. (명확한 설명은 아니지만, 대략적인 이유) 중위표기법을 후위표기법으로 바꾸는 알고리즘(stack 이용) 입력 받은 중위표기식을 하나씩 읽는다. 읽힌 값이 피연산자(0,1,2~9)이면 바로 출력한다. 읽힌 값이 연산자 or 괄호라면, 스택의 top에 저장되어 있는 연산자.. 2022. 8. 22.
[BAEKJOON_1094] 막대기(Python) *출처 https://www.acmicpc.net/problem/1094 1094번: 막대기 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대 www.acmicpc.net [문제] 지민이는 길이가 64cm인 막대를 가지고 있다. 어느 날, 그는 길이가 Xcm인 막대가 가지고 싶어졌다. 지민이는 원래 가지고 있던 막대를 더 작은 막대로 자른다음에, 풀로 붙여서 길이가 Xcm인 막대를 만들려고 한다. 막대를 자르는 가장 쉬운 방법은 절반으로 자르는 것이다. 지민이는 아래와 같은 과정을 거쳐서 막대를 자르려고 한다. 지민이가 가지고 있는 막대의 길이를 모두 더.. 2022. 8. 8.
[baekjoon] 220807asdf asdf 2022. 8. 7.
[BAEKJOON 1110] 더하기 사이클 *출처 https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net [문제] 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 수와 앞에서 구한 합의 가장 오른쪽 자리 수를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6 .. 2022. 8. 4.