Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1주차] 해바라기반 - 이승현 #4

Closed
wants to merge 1 commit into from
Closed

[1주차] 해바라기반 - 이승현 #4

wants to merge 1 commit into from

Conversation

sarah2234
Copy link
Contributor

@sarah2234 sarah2234 commented Apr 9, 2022

😀 PR을 올리기 전 준비

  • assignee를 지정해주셨나요?
  • reviewer(그룹원)를 지정해주셨나요?
  • PR 제목 등 컨벤션을 확인하셨나요?

💡 소속 그룹

해바라기반 (@CBNU-Nnet/team)

🤩 이번주 문제

문제

세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.

그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다.

괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오.

입력

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다.

🧑‍💻 어떻게 푸셨나요?

식의 오른쪽부터 시작하여 양수인 경우 plusSum에 합산한 후, - 부호가 나왔을 시 여태 합산한 양수값 plusSum과 현재 정수의 양수값을 음수로 치환하여 totalSum에 저장한다. totalSum은 구하고자하는 답을 저장한다.
예시
5-1+2+3

  1. plusSum = 3
  2. plusSum = 2 + 3
    • 부호가 나왔으므로 totalSum = -(1+plusSum)
  3. 맨 왼쪽 정수가 양수이므로 totalSum = totalSum + 5

✍️ 질문을 적어주세요.

📖 참고 사항

@alirz-pixel
Copy link
Collaborator

1주차 참여해 주셔서 감사드립니다. :)
@vcho1958 님의 풀이(#3) 와 비슷하지만서도 조금 달라서 그런지 코드를 보는데 재밌었습니다 ㅎㅎ

적어주신 풀이 말고도 스택으로도 가능하니 시간 되실 때 도전해 보세요!

{
if ('0' <= input[i] && input[i] <= '9')
{
num += pow(10, tenth++) * (input[i] - '0');
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pow 함수의 경우, 환경에 따라서 오차를 내는 경우도 존재하다고 합니다!

이 경우 때문에 저도 pow 함수를 잘 안 쓰는 편인데,
제가 첨부한 아래의 게시글과 따로 구글 검색해 보시면 도움 될 거 같습니다 :)

(만약, 제가 알고 있던 정보가 틀린 정보라면 링크랑 대댓글 남겨주시면 감사드리겠습니다)
Pow 함수의 문제점

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그러면 문형님은 pow 함수 대신 어떤 걸 쓰시나요? 현재 제가 생각나는 경우는 for문으로 10을 i번 곱하는 것밖에 없네요.

Copy link
Collaborator

@alirz-pixel alirz-pixel Apr 10, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vcho1958 님의 풀이(#3)를 참고하셔서
pow 함수 대신에 어떻게 처리 가능한지 한번 봐보시는 것도 좋을 것 같습니다!

코드 보시고서 모르겠다 싶으면, #3 댓글에 남겨주세요!

Copy link
Collaborator

@alirz-pixel alirz-pixel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR title은 Collaboration Guide에 나와있는 것과 같이 [{주차}] {그룹} - {이름} 으로 적어주세요!

{
num += pow(10, tenth++) * (input[i] - '0');
if (i == 0)
totalSum += num + plusSum;
Copy link
Collaborator

@alirz-pixel alirz-pixel Apr 9, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

맨 앞의 수가 결과값에 반영이 안 되는 문제 때문에 if (i ==0) 처리를 한 걸로 생각되는데,
여기서 처리하기 보다는 35번 줄의 printf("%d\n", totalSum);

printf("%d\n", totalSum + plusSum + num); 으로 수정하는 것이
if문의 대한 overhead가 낭비되지 않아서 더 좋아보입니다

@sarah2234 sarah2234 changed the title [1주차 해바라기반] : 이승현 - 1541 잃어버린 괄호 Silver2 (#2) [1주차] 해바라기반 - 이승현 Apr 10, 2022
@sarah2234
Copy link
Contributor Author

PR title은 Collaboration Guide에 나와있는 것과 같이 [{주차}] {그룹} - {이름} 으로 적어주세요!

수정하였습니다.

@alirz-pixel
Copy link
Collaborator

확인했습니다. 감사합니다.

@alirz-pixel
Copy link
Collaborator

이제 확인했는데 다음 주차부터는
파일 구조를 Collaboration Guide 에 맞게 해바라기반 /이승현 / 1541 잃어버린 괄호.c

이렇게 해주시면 감사드리겠습니다!

@vcho1958 @DongWooE @kingyong9169 분들께서도 approve 하시기 전에 Collaboration Guide에 맞게 작성하였는지 확인하신 후에approve 부탁드립니다.

@alirz-pixel alirz-pixel added the 📖 Assignment 주차별 과제를 공유합니다. label Apr 12, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📖 Assignment 주차별 과제를 공유합니다.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants