[Java] 달팽이 우물 탈출하기

Haeun Noh·2022년 8월 22일
1

JAVA_예제

목록 보기
16/23
post-thumbnail

0822


문제

달팽이가 몇 회만에 탈출하는지 코딩해 보세요.

[1] 달팽이가 이동한 거리 : 4
[2] 달팽이가 이동한 거리 : 8
[3] 달팽이가 이동한 거리 : 12
[4] 달팽이가 이동한 거리 : 16
[5] 달팽이가 이동한 거리 : 20
[6] 달팽이가 이동한 거리 : 24
[7] 달팽이가 이동한 거리 : 28
[8] 달팽이가 이동한 거리 : 32
[9] 달팽이가 이동한 거리 : 36
[10] 달팽이가 이동한 거리 : 40
[11] 달팽이가 이동한 거리 : 44
[12] 달팽이가 이동한 거리 : 48
[13] 달팽이가 이동한 거리 : 52
[14] 달팽이가 이동한 거리 : 55
[15] 달팽이가 이동한 거리 : 58
[16] 달팽이가 이동한 거리 : 61
[17] 달팽이가 이동한 거리 : 64
[18] 달팽이가 이동한 거리 : 67
[19] 달팽이가 이동한 거리 : 70
[20] 달팽이가 이동한 거리 : 73
[21] 달팽이가 이동한 거리 : 76
[22] 달팽이가 이동한 거리 : 79
[23] 달팽이가 이동한 거리 : 82
[24] 달팽이가 이동한 거리 : 85
[25] 달팽이가 이동한 거리 : 88
[26] 달팽이가 이동한 거리 : 91
[27] 달팽이가 이동한 거리 : 94
[28] 달팽이가 이동한 거리 : 97
[29] 달팽이가 이동한 거리 : 100
[30] 달팽이가 이동한 거리 : 103
30회만에 우물을 탙출하였습니다.

문제 조건

  • 우물의 높이는 100m로 설정한다.
  • 달팽이가 한 번에 이동하는 거리는 5m이다.
  • 달팽이는 50m 전까지는 5m를 이동한 후 1m를 밑으로 미끄러지며, 50m 이후 2m씩 아래로 미끄러진다.
  • while문을 사용한다.

소스 코드

public class Snail {
	public static void main(String args[]) {
		int snail = 0, height = 100, count = 0;		//달팽이가 이동한 거리, 우물의 높이, 횟수

		while ( snail <= height ) {
			count++;

			snail += 5;
			snail -= (snail < 50)? 1 : 2;

			System.out.println("["+count+"]"+" 달팽이가 이동한 거리 : "+snail);
		}
		System.out.println(count+"회만에 우물을 탈출하였습니다.");
	}
}

소스 코드 풀이

  • snail은 달팽이가 이동한 거리를 나타낸다.
    height는 우물의 높이를 나타낸다.
    count는 달팽이가 나가려고 도전한 횟수를 나타낸다.

  • while문을 사용한다. while문은 조건에 만족하지 않으면 반복을 끝내기 때문에 meter <= height로 조건식을 잡아준다.
    횟수를 나타내는 변수 count를 반복할 때마다 1씩 증가시킨다.
    달팽이가 간 거리가 50m 미만일 경우에는 5칸 증가 1칸 감소하지만 50m 이상인 경우에는 5칸 증가 2칸 감소한다.

    1. 거리에 상관없이 한 번 도전할 때마다 무조건 5칸 증가를 하므로 snail += 5; 수식을 넣어준다.
    2. 이동한 거리가 50m 미만일 경우 1칸 감소를 수행하고, 그 조건에 반할 경우 2칸 감소를 수행하기 때문에 이를 삼항 연산자로 표현하면 snail -= ( snail < 50 )? 1 : 2;이다.
  • 달팽이가 이동한 거리는 snail변수를 이용해 출력한다.

  • 횟수를 출력할 때 count변수를 이용해 출력한다.


실행 결과

[1] 달팽이가 이동한 거리 : 4
[2] 달팽이가 이동한 거리 : 8
[3] 달팽이가 이동한 거리 : 12
[4] 달팽이가 이동한 거리 : 16
[5] 달팽이가 이동한 거리 : 20
[6] 달팽이가 이동한 거리 : 24
[7] 달팽이가 이동한 거리 : 28
[8] 달팽이가 이동한 거리 : 32
[9] 달팽이가 이동한 거리 : 36
[10] 달팽이가 이동한 거리 : 40
[11] 달팽이가 이동한 거리 : 44
[12] 달팽이가 이동한 거리 : 48
[13] 달팽이가 이동한 거리 : 52
[14] 달팽이가 이동한 거리 : 55
[15] 달팽이가 이동한 거리 : 58
[16] 달팽이가 이동한 거리 : 61
[17] 달팽이가 이동한 거리 : 64
[18] 달팽이가 이동한 거리 : 67
[19] 달팽이가 이동한 거리 : 70
[20] 달팽이가 이동한 거리 : 73
[21] 달팽이가 이동한 거리 : 76
[22] 달팽이가 이동한 거리 : 79
[23] 달팽이가 이동한 거리 : 82
[24] 달팽이가 이동한 거리 : 85
[25] 달팽이가 이동한 거리 : 88
[26] 달팽이가 이동한 거리 : 91
[27] 달팽이가 이동한 거리 : 94
[28] 달팽이가 이동한 거리 : 97
[29] 달팽이가 이동한 거리 : 100
[30] 달팽이가 이동한 거리 : 103
30회만에 우물을 탙출하였습니다.


달팽이 우물 탈출하기 예제 C언어로 다시 풀어보기

profile
기록의 힘을 믿는 개발자, 노하은입니다!

2개의 댓글

comment-user-thumbnail
2022년 8월 22일

어머 너무 유익한 시간이였어요

1개의 답글