2018년04월28일 20번
[데이터 베이스] 후위 표기(postfix)식이 다음과 같을 때 식의 계산 결과는?

- ① 6
- ② 7
- ③ 14
- ④ -10
(정답률: 59%)
문제 해설
후위 표기식은 연산자를 뒤에 놓는 표기법으로, 스택을 이용하여 계산할 수 있습니다.
먼저, 스택을 생성합니다.
후위 표기식을 왼쪽에서 오른쪽으로 읽으면서,
1. 피연산자(숫자)를 만나면 스택에 push 합니다.
2. 연산자를 만나면 스택에서 두 개의 피연산자를 pop 하여 연산을 수행하고, 그 결과를 다시 스택에 push 합니다.
따라서, 위의 후위 표기식을 계산해보면
1. "6"을 스택에 push 합니다. (스택: 6)
2. "7"을 스택에 push 합니다. (스택: 6, 7)
3. "14"를 스택에 push 합니다. (스택: 6, 7, 14)
4. "-" 연산자를 만나면, 스택에서 두 개의 피연산자를 pop 합니다. (스택: 6, 7)
이때, 먼저 pop 되는 피연산자는 오른쪽에 위치한 것이므로, 7이 됩니다.
다음으로 pop 되는 피연산자는 왼쪽에 위치한 것이므로, 6이 됩니다.
따라서, 7 - 6 = 1 이고, 이 결과를 다시 스택에 push 합니다. (스택: 1)
5. "0"을 스택에 push 합니다. (스택: 1, 0)
6. "-" 연산자를 만나면, 스택에서 두 개의 피연산자를 pop 합니다. (스택: 1)
이때, 먼저 pop 되는 피연산자는 오른쪽에 위치한 것이므로, 0이 됩니다.
다음으로 pop 되는 피연산자는 왼쪽에 위치한 것이므로, 1이 됩니다.
따라서, 0 - 1 = -1 이고, 이 결과를 다시 스택에 push 합니다. (스택: -1)
7. "0"을 스택에 push 합니다. (스택: -1, 0)
8. "-" 연산자를 만나면, 스택에서 두 개의 피연산자를 pop 합니다. (스택: -1)
이때, 먼저 pop 되는 피연산자는 오른쪽에 위치한 것이므로, 0이 됩니다.
다음으로 pop 되는 피연산자는 왼쪽에 위치한 것이므로, -1이 됩니다.
따라서, 0 - (-1) = 1 이고, 이 결과를 다시 스택에 push 합니다. (스택: 1)
마지막으로, 스택에 남아있는 값인 1이 계산 결과입니다.
따라서, 정답은 "-10"이 아니라 "1"입니다.
["6", "7", "14", "-10"]은 후위 표기식을 만들 때 사용된 숫자와 연산자들의 순서를 나타내는 것으로, 계산 결과와는 직접적인 연관이 없습니다.
먼저, 스택을 생성합니다.
후위 표기식을 왼쪽에서 오른쪽으로 읽으면서,
1. 피연산자(숫자)를 만나면 스택에 push 합니다.
2. 연산자를 만나면 스택에서 두 개의 피연산자를 pop 하여 연산을 수행하고, 그 결과를 다시 스택에 push 합니다.
따라서, 위의 후위 표기식을 계산해보면
1. "6"을 스택에 push 합니다. (스택: 6)
2. "7"을 스택에 push 합니다. (스택: 6, 7)
3. "14"를 스택에 push 합니다. (스택: 6, 7, 14)
4. "-" 연산자를 만나면, 스택에서 두 개의 피연산자를 pop 합니다. (스택: 6, 7)
이때, 먼저 pop 되는 피연산자는 오른쪽에 위치한 것이므로, 7이 됩니다.
다음으로 pop 되는 피연산자는 왼쪽에 위치한 것이므로, 6이 됩니다.
따라서, 7 - 6 = 1 이고, 이 결과를 다시 스택에 push 합니다. (스택: 1)
5. "0"을 스택에 push 합니다. (스택: 1, 0)
6. "-" 연산자를 만나면, 스택에서 두 개의 피연산자를 pop 합니다. (스택: 1)
이때, 먼저 pop 되는 피연산자는 오른쪽에 위치한 것이므로, 0이 됩니다.
다음으로 pop 되는 피연산자는 왼쪽에 위치한 것이므로, 1이 됩니다.
따라서, 0 - 1 = -1 이고, 이 결과를 다시 스택에 push 합니다. (스택: -1)
7. "0"을 스택에 push 합니다. (스택: -1, 0)
8. "-" 연산자를 만나면, 스택에서 두 개의 피연산자를 pop 합니다. (스택: -1)
이때, 먼저 pop 되는 피연산자는 오른쪽에 위치한 것이므로, 0이 됩니다.
다음으로 pop 되는 피연산자는 왼쪽에 위치한 것이므로, -1이 됩니다.
따라서, 0 - (-1) = 1 이고, 이 결과를 다시 스택에 push 합니다. (스택: 1)
마지막으로, 스택에 남아있는 값인 1이 계산 결과입니다.
따라서, 정답은 "-10"이 아니라 "1"입니다.
["6", "7", "14", "-10"]은 후위 표기식을 만들 때 사용된 숫자와 연산자들의 순서를 나타내는 것으로, 계산 결과와는 직접적인 연관이 없습니다.
연도별
- 2020년08월22일
- 2020년06월06일
- 2019년08월04일
- 2019년04월27일
- 2019년03월03일
- 2018년08월19일
- 2018년04월28일
- 2018년03월04일
- 2017년08월26일
- 2017년05월07일
- 2017년03월05일
- 2016년08월21일
- 2016년05월08일
- 2016년03월06일
- 2015년08월16일
- 2015년05월31일
- 2015년03월08일
- 2014년08월17일
- 2014년05월25일
- 2014년03월02일
- 2013년08월18일
- 2013년06월02일
- 2013년03월10일
- 2012년08월26일
- 2012년05월20일
- 2012년03월04일
- 2011년08월21일
- 2011년06월12일
- 2011년03월20일
- 2010년09월05일
- 2010년05월09일
- 2010년03월07일
- 2009년08월30일
- 2009년05월10일
- 2009년03월01일
- 2008년09월07일
- 2008년05월11일
- 2008년03월02일
- 2007년09월02일
- 2007년05월13일
- 2007년03월04일
- 2006년09월10일
- 2006년05월14일
- 2006년03월05일
- 2005년09월04일
- 2005년05월29일
- 2005년03월20일
- 2005년03월06일
- 2004년09월05일
- 2004년05월23일
- 2004년03월07일
- 2003년08월31일
- 2003년05월25일
- 2003년03월16일
- 2002년09월08일
- 2002년05월26일
- 2002년03월10일
- 2001년09월23일
- 2001년06월03일
- 2001년03월04일
- 2000년10월01일
- 2000년07월23일
- 2000년05월14일
- 2000년03월12일
- 1999년10월10일
- 1999년08월08일
- 1999년06월20일
- 1999년04월18일
진행 상황
0 오답
0 정답