백준 2232(지뢰) - 구현
반응형
풀이 방법
ⓘ 하나씩 입력 받아서 graph 리스트 안에 입력 받기
② for문을 돌려서 리스트[graph[i]]의 값이 현재 리스트 바로 앞의 값(graph[i-1])보다 크거나 같고 현재 리스트 바로 뒤의 값[graph[i+1])보다 작거나 같으면 출력된다고 보면 된다. ( graph[i] >= graph[i-1] && graph[i]>=graph[i+1] )
③ 예외의 경우
1) 리스트의 개수가 1인 경우 앞과 뒤가 없으므로 자기 자신이 무조건 출력 된다.
2) 리스트 맨 앞의 경우(graph[0]) ( 바로 앞 숫자가 없으므로 뒤 숫자만 비교 하면된다 )
3) 리스트 맨 뒤의 경우(graph[n-1]) (바로 뒤 숫자가 없으므로 앞 숫자만 비교 하면 된다.)
1) PYTHON( 파이썬인 경우 )
import sys
n = int(sys.stdin.readline())
#리스트 입력받기
graph = [int(sys.stdin.readline()) for _ in range(n)]
for i in range(n):
#리스트 개수가 1개보다 큰 경우
if len(graph)>1:
#맨 앞인 경우
if i==0:
if graph[i]>=graph[i+1]:
print(i+1)
continue
#맨 뒤의 경우
if i==n-1:
if graph[i-1]<=graph[i]:
print(i+1)
continue
#가운데
if graph[i-1]<=graph[i] and graph[i]>=graph[i+1]:
print(i+1)
#리스트의 개수가 1개인 경우
else:
print(i+1)
import sys
n = int(sys.stdin.readline())
#리스트 입력 받기
graph = [int(sys.stdin.readline()) for _ in range(n)]
#리스트의 개수가 1인 경우
if n==1:
print(1)
else:#리스트이 개수가1이 아닌 경우
#맨 앞의 경우
if graph[0]>=graph[1]:
print(1)
#for문으로 가운데
for i in range(1,n-1):
if graph[i - 1] <= graph[i] and graph[i] >= graph[i + 1]:
print(i + 1)
#맨 뒤의 경우
if graph[n-2]<=graph[n-1]:
print(n)
2) Java( 자바 )
import java.util.*;
import java.io.*;
public class Main {
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];
//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);
}
}
}
}
반응형
'[백준] Python,Java로 풀기📖 > 구현' 카테고리의 다른 글
백준 10819(차이를 최대로)- Python(파이썬),Java(자바) - 구현,브루트포스(Permutations,Combinations,백트래킹,Java- 스택 사용 ) (0) | 2022.06.09 |
---|---|
백준 1913(달팽이) - Python(파이썬) - 구현 (0) | 2022.06.06 |