백준 14467 소가 길을 건너간 이유(구현)
제목이 귀여워서 풀게 된 문제이다..
구현이며, 해당 소의 번호와 이동을 나눠서 저장해주면 된다. 이동이 전과 다르다면 sum++를 해주는 방식이다.
시간제한이 2초, 512mb이므로 2차원 리스트를 사용했다.(번호를 출력하지는 않아도 되기때문에 1차원 배열로 이동만 저장해도 될 것 같다. 하지만 2차원 리스트 연습을 위해서 이렇게 풀었당..)
0번 or 1번만 이동한 소들은 제외시켜야 한다.
import java.util.*;
public class Main {
static ArrayList<ArrayList<Integer>> list = new ArrayList<ArrayList<Integer>>();
public static void main (String[]args){
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int sum = 0;
for(int i=0; i<101; i++){
list.add(new ArrayList<Integer>());
}
for(int i=0; i<n; i++){
int num = scanner.nextInt();
int dir = scanner.nextInt();
list.get(num).add(dir);
}
for(int i=0; i<101; i++){
if(!(list.get(i).size() <= 1)){ //해당 인덱스가 1이면 돌아오지 않음.
int k = list.get(i).get(0);
for(int j=1; j<list.get(i).size(); j++){
if(k != list.get(i).get(j)){
k = list.get(i).get(j);
sum++;
}
}
}
}
System.out.print(sum);
}
}
Author And Source
이 문제에 관하여(백준 14467 소가 길을 건너간 이유(구현)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dydgjs2016/백준-14467-소가-길을-건너간-이유구현저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)