클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

자바 프로그래밍 기초 16 - 연습문제 다시 풀어보기 <8번 ~ 12번> 본문

프로그래밍 언어/자바

자바 프로그래밍 기초 16 - 연습문제 다시 풀어보기 <8번 ~ 12번>

huenuri 2024. 8. 11. 02:35

나머지 연습문제를 이어서 풀어보기로 하자! 이제 5문제가 남아있다. 


 

 

 

 

문제 8번

 

첫번째 도전

 

뭔가 잘못 쓴 것 같은데 빨간줄이 왜 뜨는지는 모르겠다. 많이 어려운 문제이니 정답을 참고하며 다시 풀기로 했다.


 

 

 

두번째 도전

 

 

메소드를 왜 썼는지 두번째로 문제를 풀어보며 알게 되었다. 그건 네 개의 점을 표시하기 위해서였다. 앞의 7번 문제처럼 일반 조건문을 사용하면 조건이 굉장히 길어지기 때문이다.

그리고 전에 풀 때는 네 개의 위치 중 두 점만 그 안에 있으면 충돌하는 거라고 생각했는데 아니었다. 네 개의 위치 모두 그 안에 속해야 충돌하는 것이었다.


 

 

 

 

문제 9번

 

 

이 문제는 너무 어려워서 정답을 보면서 풀었다. 아직 배우지 않은 것들도 나오지만 if-else 문을 연습하기에는 괜찮은 문제인 것 같다. 다음에 함수를 배우고 나서 다시 풀어볼 생각이다.

 

 

 

위 그림은 원과 한 점의 관계를 시각적으로 보여준다.

  • 파란색 원은 주어진 중심과 반지름을 가진 원을, 빨간색 점은 주어진 점의 위치를, 점선은 원의 중심과 점 사이의 거리를 나타낸다.

이 그림에서 점이 원의 내부에 위치하고 있는지, 외부에 위치하고 있는지를 확인할 수 있다.

  • 만약 점과 원의 중심 사이의 거리가 원의 반지름보다 작다면, 점은 원 안에 있다.
  • 거리가 원의 반지름보다 크다면 점은 원 밖에 있다.

 

 

 

 

문제 10번

9번 문제와 비슷하지만 이것도 수학에 대해 어느 정도 알아야 풀 수 있는 문제이다.

 

 

 

처음 풀 때보다 지금 다시 풀어보니 훨씬 더 이해가 되었다. 이 코드를 그림으로 그리면 다음과 같다.

 

 

 

 

위 그림은 두 원이 서로 겹치는 경우를 보여준다.

  • 파란색 원은 첫 번째 원이며, 빨간색 원은 두 번째 원이다.
  • 두 원의 중심을 연결하는 점선은 두 원 사이의 거리를 나타낸다.
  • 두 원이 겹치기 위해서는 중심 간의 거리가 두 원의 반지름 합보다 작아야 한다. 만약 중심 간의 거리가 반지름의 합보다 크면, 두 원은 서로 겹치지 않는다.

그림에서 두 원의 중심 간의 거리는 두 원의 반지름 합보다 작으므로, 두 원이 겹치는 것을 볼 수 있다.

 

그림으로 살펴보니 내용 이해가 훨씬 쉬워진다.


 

 

 

 

문제 11번

 

1) if-else 문

첫번째 도전

 

0을 입력했는데 겨울이 나왔다. 코드를 뭔가 잘못 쓴 것 같다.


 

 

 

두번째 도전

 

이번에도 0을 입력하자 겨울이 되었다. 이 문제는 정답을 보고 풀어야 할 것 같다.


 

 

 

마지막 도전

 

잘못 입력으로 잘 나온 것을 보니 잘 출력이 되었다. 지난번에 쓴 코드를 보니 맞았고 생각했는데 틀린 답안이었다. 이제 이 문제를 switch문으로 풀어볼 것이다.


 

 

 

 

2) switch 문

 

 

switch 문으로도 잘 출력이 되고 있다. 이 문제는 정답도 보지 않고 혼자서 잘 풀었다. 여기서 break 문을 꼭 써야 한다는 것을 기억하자!


 

 

문제 12번

 

1) if-else 문

 

 

이렇게 잘 출력이 되고 있다. 나누기 문제는 어떻게 하는지 몰라서 정답을 참고하며 풀어보았다. 0으로 나누는 대상이 무엇인지, 조건은 어떻게 만드는지 좀 이해가 되지 않았다. 이런 문제는 내게 많이 어렵다. 특히 난 나누기 문제에 많이 약한 것 같다.


 

 

 

 

2) switch 문

 

 

switch 문으로도 잘 출력이 되고 있다. 전에 풀었을 때는 이 문제를 어떻게 풀어야 할지 몰라서 사칙연산으로만 풀었다. 이번에는 제대로 풀 수 있어서 정말 기뻤다.


 

 

 

학습을 마치고

이로써 오늘 하루종일 2단원까지 모든 학습을 마쳤다. 연습문제도 3번째 풀어보는 문제들도 있고, 2번째 풀어보는 것도 있었지만 처음부터 끝까지 정답대로 다 풀어보는 건 이번이 처음이었다. 

이제 난 자바 프로그래밍에 대해 자신감이 생겼고 어떤 문제든지 도전해서 해결할 수 있겠다는 자신감이 생겼다. 다음 포스트에서는 for문에 대해서 학습을 이어가볼 것이다!