Test1

Hi_na·2022년 11월 12일

Project

목록 보기
1/5
post-thumbnail

🔍동굴 탈출하기

  1. 어떤 사람이 걸어가다, 이 동굴에 빠졌다.
    이때, 이 사람은 며칠만에 동굴에서 탈출할 수 있을까?
  2. 동굴의 높이 = 300미터
    하루동안 올라갈 수 있는 최대 높이 = 40미터
    자는 동안에, 미끄러지는 높이 = 17미터

✏️Algorithm

variable
1. 동굴의 높이 = 300m
2. 하루동안 올라갈 수 있는 높이 = 40m
3. 미끄러지는 높이 = 17m
4. 누적 높이

result 
1. 총 높이
2. 탈출 날짜

사람이 길을 걷다가 동굴로 떨어졌다.

Day1.  + 40m > -17m = 누적 높이(23m)
Day2.  + 40m > -17m = 누적 높이(46m)
Day3.  + 40m > -17m = 누적 높이(69m)
Day4.  + 40m > -17m = 누적 높이(92m)
Day5.  + 40m > -17m = 누적 높이(115m)
Day6.  + 40m > -17m = 누적 높이(138m)
Day7.  + 40m > -17m = 누적 높이(161m)
Day8.  + 40m > -17m = 누적 높이(184m)
Day9.  + 40m > -17m = 누적 높이(207m)
Day10. + 40m > -17m = 누적 높이(230m)
Day11. + 40m > -17m = 누적 높이(253m)
Day12. + 40m > -17m = 누적 높이(276m)
Day13. + 40m = 누적 높이(316m) > 탈출

예외,
Day13. + 40m = 누적 높이(316m) > -17m = 누적 높이(299m)
Day14. + 40m = 누적 높이(339m) > 탈출

사람이 동굴 밖으로 나왔다.

✍️Coding

package test1;

public class EscapeTheCave {

	public static void main(String[] args) {

		int caveHeight = 300;
		int h = 40;  // 하루동안 올라갈 수 있는 높이
		int s = 17;  // 미끄러지는 높이 
		int sum = 0; // 누적높이
		int day = 0;
		
		while(true) {
			
			if(sum > caveHeight) {
				System.out.println("드디어 탈출했다!");
				System.out.println("탈출 날짜: " + day + "일");
				day++;
				System.out.println("총 높이: " + sum + "m");
				sum = sum + h ;
				break;
			}
			else if(sum <= caveHeight) {
				System.out.println("동굴 안");
				System.out.println("Day: " + day + "일");
				day++;
				System.out.println("누적 높이: " + sum + "m");
				sum = sum + (h - s);
				System.out.println("==========================");
			}
		}
	}

}

👏Result

드디어 탈출했다!
탈출 날짜: 14일
총 높이: 322m

🤓해결과정 & 문제점

  1. 각 요소마다 변수잡기
  2. 어떤 반복문과 조건문을 쓸 지 정하기
  • for문 : 반복 횟수를 알고 있을 때 주로 사용.
  • While문 : 조건에 따라 반복을 계속할지 결정할 때 사용.
    📌 문제점 : sum의 범위를 잘못 잡아서 결과값이 다르게 나왔다.

0개의 댓글