스택계산기에 대한 질문드리옵니다

bjeongh1의 이미지

아무리 생각을 해봐도 이건 잘 모르겠네요.사용자에게 수식을 받을때 2+3*12+62 이런씩으로 문자열로 받는다고 하면 이걸 정수형으로 변환이 가능 한지 도저히 모르겠네요...저기 보면
두자리숫자들 보이시죠?! 글자하나하나가 char[i]값이기 때문에 정수형으로 바꿀려면 char[i]와char[i+1]이 되어야하는데 제 상식으로는 이해가 안가네요 좀 도와주세요~

정태영의 이미지

스택 계산기라고 하는거 보면 postfix 얘기일텐데, infix 로 수식을 입력받고 계시네요. 뭐 하튼 그거랑 상관없이...

스택을 이용하시면 됩니다.

예로 12 란 입력만 보면

1, push(1) -> [1]
2, push(2) -> [1, 2]
+, pop(): 2 -> [1]
, pop(): 1*10 + 2 = 12; -> []

간단하게 정리해서 얘기드리자면 숫자가 들어오면 push! 숫자가 아닌게 들어오면 stack 이 빌 때까지 pop! 을 해주면서 숫자를 재조합해주면... 간단히 처리할 수 있습니다.

infix 로 표현된 2+3*12+62 를 postfix 로 바꿔서 2 12 3 * + 62 + 로 바꾸게 되면 똑같은 방식을 이용해서 연산까지 구현할 수가 있구요. ;)

--
오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다...

http://mytears.org ~(~_~)~
나 한줄기 바람처럼..

bjeongh1의 이미지

조합을 하는게 생각보다 힘이 들긴 하네요 아직 많이 모잘라서 로직이 생각이 안난다눙 ㅜ.ㅜ

어떤씩으로 하는지 감은 잡힙니다~ 댓글 감사하구요~ 오랫동안 꿈을 그리는 사람은 그 꿈을 닮아간다~

좋은 말이네요~근데 그꿈을 너무 따라가다가 사고방식이 이진모드가 되는건 아닌지 걱정이 됩니다ㅜ.ㅜ

/*다른분이 사용하는 문구를 따서 왔습니다*/
간디가 말한 우리를 파괴시키는 7가지 요소

첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스

이익추구를 위해서라면..

다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치

uosarang의 이미지

숫자넣을 스택하고
연산자 넣을 스택을 2개로 나눠놓으면 어때요?

머리를 굴려라! 그래야 먹고 산다.

bjeongh1의 이미지

그래 난 미쳤다....근데 이렇게 안미치고 늦게 시작해서 어떻게 올라가냐

당연히 두개로 나눠서 연산작업을 합니다... 그런데 위에서 말했듯이 char형으로 수식을 받기 때문에

만일 12를 입력받으면 arr[0]=1, arr[1]=2 이렇게 들어가게 되죠

그걸 합치는 방법을 구하는거구요... 지금 윗분이 말씀하시고 다시 생각해서 로직을 새로 짜니까

답이 나오네요 라인이 좀더 들어가긴 하는데 반복문과 분기문을 좀더 활용하면 되네요 ^^

/*다른분이 사용하는 문구를 따서 왔습니다*/
간디가 말한 우리를 파괴시키는 7가지 요소

첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스

이익추구를 위해서라면..

다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치

bjeongh1의 이미지

그래 난 미쳤다....근데 이렇게 안미치고 늦게 시작해서 어떻게 올라가냐

좀더 좋은 방법이 있음 가르쳐 주시면 감사하겠습니다~

/*다른분이 사용하는 문구를 따서 왔습니다*/
간디가 말한 우리를 파괴시키는 7가지 요소

첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스

이익추구를 위해서라면..

다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치

snowall의 이미지

오프토픽인데요

서명이 앞에 있으니까 이상해요...
기분나쁘게 듣지는 마시구요. :)
--------------------------
snowall의 블로그입니다.
http://snowall.tistory.com

피할 수 있을때 즐겨라! http://melotopia.net/b

bjeongh1의 이미지

그래 난 미쳤다....근데 이렇게 안미치고 늦게 시작해서 어떻게 올라가냐

이글이 좀 그런가요 ^^ 그러면 바꿔야죠~

/*다른분이 사용하는 문구를 따서 왔습니다*/
간디가 말한 우리를 파괴시키는 7가지 요소

첫째, 노동 없는 부(富)/둘째, 양심 없는 쾌락
셋째, 인격 없는 지! 식/넷째, 윤리 없는 비지니스

이익추구를 위해서라면..

다섯째, 인성(人性)없는 과학
여섯째, 희생 없는 종교/일곱째, 신념 없는 정치

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.