Java/Java 알고리즘

백준 4299번 축구점수 JAVA 구현해보기

kimc 2022. 2. 5. 20:39

```

백준 4299번 축구 점수 JAVA 구현해보기

```

이번 글을 통해 배워갈 내용

  1.  백준 4299번 풀이

https://www.acmicpc.net/problem/4299

 

4299번: AFC 윔블던

원섭이는 잉글랜드 4부리그 풋볼 리그 2에서 활약하는 AFC 윔블던을 좋아한다. 이 팀은 2002년 윔블던 FC가 밀턴 킨스로 연고 이전을 감행하자 윔블던의 서포터들이 스스로 나서 창단한 팀이다. 윔

www.acmicpc.net

 

백준 4299번은 축구 점수의 합, 차가 주어질 때

해당되는 축구 점수를 출력하면 되는 문제입니다.

 

구할 수 없다면 -1을 출력하면 됩니다.


30분 정도 위에 링크를 방문하셔서 풀어보시고

안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.


합과 차로 두점수 a b를 구한다면

a + b = sum

a - b = sub

이기때문에

 

a = (sum + sub) / 2

b = (sum - sub) / 2

 

입니다.

이때

정수를 나누는 것이기 때문에

sum + sub는 2의 배수여야 하며

sum - sub도 2의 배수여야 하고

양수의 합과 차의 특성상 음수가 나올 수 없기 때문에

0 이상의 값이 나와야 합니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[] args) throws IOException {

        StringTokenizer st = new StringTokenizer(br.readLine(), " ");

        int sum = Integer.valueOf(st.nextToken());
        int sub = Integer.valueOf(st.nextToken());

        System.out.print(findScore(sum, sub));
    }

    private static String findScore(int sum, int sub) {
        if((sum + sub) % 2 != 0 && (sum - sub) % 2 != 0){
            return "-1";
        }

        int a = (sum + sub) / 2;
        int b = (sum - sub) / 2;

        if (a < 0 || b < 0) {
            return "-1";
        } else {
            return (a + " " + b);
        }
    }

}

 

읽어주셔서 감사합니다

 

무엇인가 얻어가셨기를 바라며

 

오늘도 즐거운 코딩 하시길 바랍니다 ~ :)

 


 

728x90