2019년09월21일 49번
[프로그래밍 일반] 다음 수식(expression)을 EBNF로 맞게 표현한 것은?

- ① <expression> : : =<expression>(+│-│*│/)<expression>
- ② <expression>=<expression>[+│-│*│/]<expression>
- ③ <expression> : : <expression>{+│-│*│/}<expression>
- ④ <expression> : : = expression [+│-│*│/]<expression>
(정답률: 58%)
문제 해설
연도별
- 2020년08월22일
- 2020년06월06일
- 2019년09월21일
- 2019년04월27일
- 2019년03월03일
- 2018년09월15일
- 2018년04월28일
- 2018년03월04일
- 2017년09월23일
- 2017년05월07일
- 2017년03월05일
- 2016년10월01일
- 2016년05월08일
- 2016년03월06일
- 2015년09월19일
- 2015년05월31일
- 2015년03월08일
- 2014년09월20일
- 2014년05월25일
- 2014년03월02일
- 2013년09월28일
- 2013년06월02일
- 2013년03월10일
- 2012년09월15일
- 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년07월27일
- 2008년05월11일
- 2008년03월02일
- 2007년08월05일
- 2007년05월13일
- 2007년03월04일
- 2006년08월06일
- 2006년05월14일
- 2006년03월05일
- 2005년08월07일
- 2005년05월29일
- 2005년03월20일
- 2005년03월06일
- 2004년08월08일
- 2004년05월23일
- 2004년03월07일
- 2003년08월10일
- 2003년05월25일
- 2003년03월16일
- 2002년08월11일
- 2002년05월26일
- 2002년03월10일
- 2001년09월23일
- 2001년06월03일
- 2001년03월04일
이유는 다음과 같다.
- EBNF에서 대괄호([])는 옵션을 나타내고, 중괄호({})는 0회 이상 반복을 나타낸다.
- 따라서 "<expression>=<expression>[+│-│*│/]<expression>"은 "+" 또는 "-" 또는 "*" 또는 "/"가 없는 경우를 고려하지 않았기 때문에 올바르지 않다.
- "<expression> : : <expression>{+│-│*│/}<expression>"은 중괄호 안에 있는 기호들이 반드시 순서대로 나와야 하기 때문에 "+" 또는 "-" 또는 "*" 또는 "/"가 중간에 빠지거나 중복되는 경우를 고려하지 않았기 때문에 올바르지 않다.
- 따라서 "<expression> : : = expression [+│-│*│/]<expression>"은 "+" 또는 "-" 또는 "*" 또는 "/"가 한 번만 나와야 하기 때문에 올바르지만, "=" 기호가 불필요하게 들어가 있어서 간결하지 않다.
- 따라서 "<expression> : : =<expression>(+│-│*│/)<expression>"이 가장 간결하면서도 "+" 또는 "-" 또는 "*" 또는 "/"가 한 번만 나와야 하는 조건을 충족시키기 때문에 정답이다.