본문 바로가기
오늘의 프로그래밍 👩‍💻

Hello Coding 프로그래밍 심화문제 챕터 10 문제풀이, 정답

by _호야_ 2022. 4. 1.
반응형

어느덧 헬로코딩 프로그래밍의 마지막 챕터 입니다. 

 

 

반복문 while, for을 배우면서 헷갈리기도 하고 이해도 안되서 진도 나가는게 더디고 용기의 불꽃도 희미해질랑말랑 했어요.

그래도 책은 끝내야한다는 의무감으로 유트브로 해설도 찾아보고 카페도 가입해서 다른 분들은 어떻게 푸셨는지 보면서 알고리즘을 계속 봤답니다. 물론 아직 훨~~~~씬 부족하지만 코딩의 'ㅋ'을 겉핥으면서 재미도 느끼고 있습니다. 

 

대망의 마지막 파트는 랜덤입니다. 

 

10-1 문제. 숫자 맞추기 게임을 만드세요. 규칙은 다음과 같습니다. (힌트: while 문을 쓰세요.)

1. 수비수가 1 이상 100 이하의 숫자를 무작위로 고릅니다. 

2. 공격수가 숫자를 입력합니다. 

3. 만약 입력한 숫자가 수비수가 고른 숫자보다 크면 "더 작은 숫자입니다. "를 출력합니다. 

4. 만약 입력한 숫자가 수비수가 고른 숫자보다 작으면 "더 큰 숫자입니다. "를 출력합니다. 

5. 만약 입력한 숫자가 수비수가 고른 숫자와 같다면 "정답입니다. "를 출력하고 프로그램을 종료합니다. 

6. 맞출 때까지 2~5를 반복합니다. 

 

 

  • 씽푸미니 풀이

 

  • 출력

 

  • 씽푸미니 해설

현업에서 개발자로 일하시는 분이 하신 말씀 중에 개발자의 역량 중 가장 중요한 것은 '요구사항을 구체적이고 절차적으로 변환하는 능력을 키워라'였습니다. 

 

실제로 이 교재의 심화문제를 풀면서 문제 출제자의 의도를 정확하게 몰라서 헤매기도 하고, 어떤 것을 변수로 잡아야 하는지 몰라서 여기저기 기웃거리기도 했습니다. 

 

이번 문제는 요구사항을 잘 파악하고 절차적으로 변환하는 것을 생각하면서 풀어봤습니다. 

 

 

반응형

 


10-2 문제. 가위바위보 게임을 만드세요. 규칙은 다음과 같습니다. 

 

1. 1은 가위, 2는 바위, 3은 보입니다. 

2. 프로그램에서 1 이상 3 이하인 숫자를 무작위로 고릅니다. 

3. 사용자가 1,2,3 중에 하나의 숫자를 고릅니다. 

4. 사용자가 지면 "졌습니다. "를 출력합니다.

5. 사용자가 이기면 "이겼습니다. "를 출력합니다. 

6. 비겼다면 "비겼습니다. "를 출력합니다. 

7. 비기면 2~6을 반복합니다. 

 

 

 

  • 씽푸미니 풀이

헬로코딩 심화문제 10-2

 

 

 

  • 출력

 

 

 

  • 씽푸미니 해석

이 문제는 여러가지 경우의 수를 생각해봤다. 총 아홉가지의 경우의 수가 있는데, 다 적을 수도 있었지만 뭔가 코드를 완성하지 못했고 포프쌤 영상을 찾아봤다. 

 

쌤은 가위, 바위, 보를 뺄셈으로 다시 생각해서 거기서 3가지의 경우의 수로 줄여서 코드를 짜셨다. 정말 respect...!

 

쌤의 강의를 보고 내가 코드를 짰는데, 헛점이 있었다. 

바로, 랜덤식을 어디에 놓느냐였다. 

나는 처음에 랜덤식을 반복문 while 밖에 두었다. 

근데 이러면 참 재미없는 게임이 된다. 왜냐면 내가 가위바위보를 반복할때 컴퓨터의 가위바위보 값은 동일하기 때문이다.

 

그래서 랜덤식을 while 안에 넣어서 반복될때마다 새롭게 랜덤을 돌려야한다!

 


책 초반에는 기세등등하게 책을 따라갔다. 하지만 반복문, 랜덤을 배우고 식이 복잡해질수록 이해하기 어려웠다. 

어려웠지만 코딩의 ㅋ 정도는 알 수 있었고 재밌었다. 

머리를 굴릴때마다 뭔가 똑똑해지는 기분이랄까...!

 

앞으로 공부를 어떻게 해나가야할지 알아봐야겠다. 

반응형

댓글