ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [알고리즘 문제] 정올 1583 : 개구리 탈출
    IT/알고리즘 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;

    }


    를 추가시켜 고칠 수 있었다.



    실행결과↓↓↓



    댓글

Designed by Tistory.