알고리즘

백준 2232

kOsari 2023. 6. 22. 09:18

2232번: 지뢰 (acmicpc.net)

 

2232번: 지뢰

일직선상에 N개의 지뢰가 같은 간격으로 매설되어 있다. 각각의 지뢰는 충격 강도 Pi가 있어서, Pi를 초과하는 힘을 가하면 Pi만큼의 힘을 발휘하며 터지게 된다. 어떤 지뢰가 터지게 되면, 그 지

www.acmicpc.net

문제 이해

해당 문제는 앞뒤의 숫자를 비교해 지뢰를 터트리는 문제이다.

해당 문제의 경우 단순히 앞뒤의 숫자를 비교하면 된다.

단 맨 앞과 맨 뒤의 경우 앞뒤의 숫자가 없기 때문에 예외로 체크를 해주면 된다.

 

풀이

맨앞과 맨 뒤만 체크를 해주고 

1개일 경우 그 지뢰만 터트리면 된다.

사이에 있는 것들은 사이에 있는 값들을 비교하면서 중앙에 있는 값이 크다면 해당 지뢰를 터트리면 된다.

import java.util.*;
import java.io.*;

public class test34 {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        int[] graph = new int[N];
        for(int i=0;i<N;i++){
            graph[i]=Integer.parseInt(br.readLine());
        }
        //개수가 1개인 경우
        if(graph.length==1)
            System.out.println("1");
        else{
            //맨 앞
            if(graph[0]>=graph[1])
                System.out.println(1);
            //사이에있는 것들 
            for(int i=1;i<N-1;i++){
                if(graph[i]>=graph[i-1] && graph[i]>=graph[i+1])
                    System.out.println(i+1);
            }
            //맨 뒤 
            if(graph[N-1]>=graph[N-2]){
                System.out.println(N);
            }
        }
    }
}