본문 바로가기

Algorithm/CodeUp

[CodeUp_Java] Q2006 : 앞으로 뒤로

반응형

안녕하세요! Plitche(플리체)입니다.
이번 포스팅의 주제는 Q2006 : 앞으로 뒤로 (자바, JAVA)입니다.

Intro

Question

문제 설명

Nikky와 Byron이 체육시간에 바보 게임을 하고 있다.

Nikky는 a 걸음 앞으로 걸어 간 다음, b 걸음 뒤로 간다. 그 후 계속 a 걸음 앞으로 b 걸음 뒤로를 반복한다.

비슷하게 Byron도 c 걸음 앞으로 간 다음, d 걸음 뒤로 가는 것을 계속 반복한다.

Byron과 Nikky는 보폭이 같고, 같은 시간에 첫 걸음이 시작된다.

Nikky와 Byron은 축구장의 한쪽 끝에서 걷기 시작한다.

s 걸음후에 체육 선생님이 휘슬을 불었을 때, 시작 위치에서 가장 멀리 이동한 사람은 누구인가?

입력

5개의 정수 a, b, c, d, s가 차례대로 각 행에 입력된다.
( 1 <= a, b, c, d <= 100 , a >= b , c >= d, 1 <= s <= 10,000)

출력

s걸음 후에 휘슬을 불었을 때 시작위치로 부터 가장 멀리 떨어진 사람의 이름을 출력한다. (Nikky, Byron)
만약 같은 위치이면 "Tied" 를 출력한다.

예시

  • 입력 :
    4
    2
    5
    3
    12
  • 출력 : Byron

Solution (풀이)

  • 풀이 : 메모리 11144, 시간 : 62
public class Answer1 {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int a = Integer.parseInt(br.readLine());
        int b = Integer.parseInt(br.readLine());
        int c = Integer.parseInt(br.readLine());
        int d = Integer.parseInt(br.readLine());
        int s = Integer.parseInt(br.readLine());

        int aStep = s;
        int cStep = s;

        int aEnd = 0;
        int cEnd = 0;

        while (true) {
            if (aStep >= a) {
                aEnd += a;
                aStep -= a;
                if (aStep >= b) {
                    aEnd -= b;
                    aStep -= b;    
                } else {
                    aEnd -= aStep;
                    break;
                }
            } else {
                aEnd += aStep;
                break;
            }
        }

        while (true) {
            if (cStep >= c) {
                cEnd += c;
                cStep -= c;
                if (cStep >= d) {
                    cEnd -= d;
                    cStep -= d;    
                } else {
                    cEnd -= cStep;
                    break;
                }
            } else {
                cEnd += cStep;
                break;
            }
        }

        System.out.println(aEnd > cEnd ? "Nikky" : aEnd == cEnd ? "Tied" : "Byron");
    }

}

Ranking(순위)

반응형