brunch

You can make anything
by writing

C.S.Lewis

by 김지영입니다 Jan 24. 2024

외계어 배우기 - 문제#2 ConeVolume

Python을 배워봅시다

이제, 문제#2 ConeVolume을 해결해 보자.


덧, 여기서 다시 한번 언급하고 싶은 것은, 이 글은 생선님(더 티처스라는 프로를 보니까 요즘 친구들은 선생님을 생선님이라고 부르더라고요 ㅎㅎㅎ)과 수업을 한 후 혼자 정리(복습)하면서 쓰는 글이다 보니 수업 당일의 기억이 50%도 남지 않은 상태에서 쓸 수 있다는 것이다. 최대한 그때의 기억을 되살리고, 수업 내용을 녹음한 것을 다시 들으며 복습하고 정리하지만 그래도 기억이 빈약할 수 있다.


이번 복습부터 PyCham을 사용한다고 말했던 거 기억하지? 정말, 얼마나 편하게 코드를 실행해 볼 수 있는지 영상 보면 느낄 수 있다.


너무 당연하지만, 어떤 편집기를 사용하느냐가 중요한 것이 아니라 내가 제대로 된 코드를 입력해야지만 제대로 작동한다. 


이 장을 마치며 책에서 주어진 연습문제를 몇 가지 풀어봤는데, 내가 얼마나 삽질(?)을 했는지도 기록해 두는 것이 좋을 것 같다. 오답노트라고 해야 하나... 


Spooky Season 문제를 9번 틀리고 나서 맞췄다. 이건 좀 심한가... 

A New Hope 문제는 그나마(?) 6번 틀리고 나서 정답을 맞추었다. 


이 문제들을 풀면서 몇 가지 깨달은 바가 있다.


1. 이 문제들이 나에게 요구하는 것이 무엇인지부터 제대로 이해하는 것이 중요하다. 

이 문제에서 내가 처음 제출한 답은 다음과 같다.

아니 틀림없이 S는 2보다 크거나 같고 20보다 작거나 같은 정수라고 했잖아! 그런데 도대체 왜 저기서 저렇게 당당하게 S = 'sp' + ('o' * 10) + 'ky'라는 코드가 나오는 거야? 무슨 생각을 했는지... 이게 도대체 왜 틀렸는지 이해를 못 해 3번이나 같은 코드를 입력했다니... 그 후도 크게 나아지지 않았다.

지금 보니 어이없지만, 그때는 꽤나 심각했다. S는 정수니까 내가 정수값을 정해줬고, 배운 코드 제대로 넣었는데 왜 안 되는 거지?라고 생각했으니... 하물며, 저 코드를 ChatGPT에게 보여줬더니 잘했다고 칭찬도 해줬다. 틀림없이 input consists of a single integer S라고 떡하니 쓰여 있는데! 

드디어, 답을 맞추었다. 문제만 조금 더 꼼꼼히 읽었더라면 정답에 더 빨리 접근할 수 있었을 텐데...


2. 문제에서 요구하지도 않은 것들을 내 맘대로 앞서 추측(?) 하지 말자.

위에 문제에서 내가 최종적으로 올린 코드를 보고 '어라, 저기 왜 저걸 넣었지?'라고 생각했는가? 혹시 모르겠다면 아래 문제도 보자.

물론, 이 코드는 다른 부분도 틀렸지만, 두 가지 문제 모두에서 나는 쓸데없는 짓을 하고 있었다. 

굳이 S = 10이라거나 N = 4로 값을 지정해 준 것이다. 왜? "문제에서 정수라고 이야기했고, 그 정수의 범위도 정해주었으니 내가 당연히 하나 골라서 넣어야지."라고 생각했으니까~ 하하하하하


3. 시험지에는 열심히 정답 적어 놓고 답지에 옮길 때, 혹은 잘 풀어놓고 마지막에 덧셈/뺄셈에서 틀리지 않도록 조심하자. 실수가 아니라 실력이다.

A New Hope 문제에서 이 코드는 왜 틀렸을까?

A long time ago in a galaxy 

a를 빼먹었거든~


여하튼, 우여곡절 끝에 문제를 모두 잘 풀었고 그나마 그 후에 문제는 한 번에 풀어냈다.


다음 시간부터는 [Chapter2. 조건문]에 대해 공부하며 문제#3과 문제#4를 해결해 보자.



매거진의 이전글 외계어 배우기 - 문제#2 ConeVolume: 수학
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari