공부하기/백준

[Java] 백준 풀기 13118 - 뉴턴과 사과

XEV 2023. 4. 16. 23:54

자바 백준 13118번

브론즈 4

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

 

13118번: 뉴턴과 사과

첫 번째 줄에 사람들의 위치를 나타내는 네 정수 p1, p2, p3, p4 (−109 ≤ p1 < p2 < p3 < p4 ≤ 109)가 공백을 사이로 두고 주어진다. i번 (1 ≤ i ≤ 4) 사람은 (pi, 0) 위에 서 있다. 두 번째 줄에 사과의 정보

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 구현

 

 

 

 

 

문제 풀기

주어진 원과 사람이 충돌이 일어나기 위해서는 원의 중심 x 좌표가 사람의 좌표와 같아야 한다. 따라서 이 문제에서 주어지는 y 좌표와 r 값은 문제를 푸는데 필요하지 않다.

 

네 사람의 좌표들를 array 에 순차적으로 입력받고 하나씩 빼내어 x 좌표와 같은지 확인한다. 만약 같다면 index + 1 을 하여 그 값을 출력한다.

이때, 충돌이 일어나지 않는 경우인 x 좌표와 사람의 좌표가 맞지 않는 경우가 생길 수 있는데 이를 위해 boolean 으로 isCrash = false 로 초기화한 후 x 좌표와 사람의 좌표가 일치하는 경우가 있으면 true 로 바꿔주고 그렇지 않으면 false 로 유지되게 한다. 이 isCrash 가 false 인 마지막 조건으로 두어 위에서 일치하는 조건이 없을때 0 을 출력하게 한다.

 

 

 

 

 

코드 보기

import java.util.Scanner;

public class Main {
    public static void main(String args[]) {
        
        Scanner sc = new Scanner(System.in);
        
        int[] pointArr = new int[4];
        for (int i = 0; i < 4; i++) {
            pointArr[i] = sc.nextInt();
        }
        
        int x = sc.nextInt();
        int y = sc.nextInt();
        int z = sc.nextInt();
        
        boolean isCrash = false;
        for (int i = 0; i < 4; i++) {
            if (pointArr[i] == x) {
                System.out.print(i + 1);
                isCrash = true;
            }
        }
        
        if (isCrash == false) {
             System.out.print(0);
        }

    }
}