IT/알고리즘
[알고리즘 문제] 정올 1583 : 개구리 탈출
새박이
2019. 4. 24. 10:00
귀여운 개구리 탈출 문제
이해하는데 어려움이 없기 때문에 바로 코드를 보도록 하자
소스코드↓↓↓
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | public class escapeFrog { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); //입력 수가 0 0이 나올 때까지 반복 while(true){ int x = sc.nextInt(); int y = sc.nextInt(); int height = 0; //개구리가 올라간 총 높이 int countDay = 0; //우물을 탈출하는데 걸린 일수 //우물의 높이보다 개구리가 올라간 높이가 낮을때 while(height<x){ height += y; //하루에 올라갈 수 있는 높이y를 개구리가 올라간 총 높이에 더해줌 //개구리가 올라간게 우물높이보다 높으면 일수 증가시키고 반복 끝 if(height>=x){ countDay++; break; } //개구리가 올라간 총 높이의 20%를 뺌 height -= height*0.2; //하루 증가 countDay++; //개구리가 1년안에 탈출을 못했을 경우 if(countDay>365){ break; } } if(x==0 && y==0){ break; }else if(countDay>365){ System.out.println("평생 살아라"); }else{ System.out.println(countDay+"일"); } } } | cs |
맨처음에 입력값으로 100 50을 주면 자꾸 4일이 나와서 디버깅을 해봤는데 반복문이 진행되면서 height이 100이 넘어도 20% 뺀 뒤에 100 이하가 되서 개구리가 하루를 더 고생하는 불상사가.....
그래서 반복문 중간에
if(height>=x){
countDay++;
break;
}
를 추가시켜 고칠 수 있었다.
실행결과↓↓↓