진짜 문제는 끝까지 읽어야 한다.
쉬운 문제였지만 출력 조건을 제대로 안읽어서 자꾸 출력 오류가 났었다....
반성반성
문제 그대로 구현만하면 되는 쉬운문제다.
import java.util.*;
public class Main {
private static int[] arr;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = Integer.parseInt(sc.nextLine());
String inputStr = sc.nextLine();
String[] inputArr = (inputStr).split(" ");
arr = new int[n+1];
arr[0]=0;
for(int i=0;i<n;i++){
arr[i + 1] = Integer.parseInt(inputArr[i]);
}
int stun = Integer.parseInt(sc.nextLine());
for(int l=0;l<stun;l++){
String input = sc.nextLine();
String[] inputarr = input.split(" ");
int num= Integer.parseInt(inputarr[1]);
if(inputarr[0].equals("1")) {//남자
if(num>n)
continue;
for(int i=num;i<=n;i+=num){
int temp = arr[i];
arr[i]=(temp+1)%2;
}
}else{//여자
int midtemp = arr[num];
arr[num]=(midtemp+1)%2;
int start = num;
int last = num;
while(start-1 != 0 && last+1 !=arr.length){
start--;
last++;
if(arr[start]!=arr[last]){
break;
}
int starttemp=arr[start];
int lasttemp= arr[last];
arr[start] = (starttemp+1)%2;
arr[last] = (lasttemp+1)%2;
}
}
}
for(int i=1;i<arr.length;i++){
System.out.print(arr[i]+" ");
if(i%20==0)
System.out.println();
}
}
}
dfs,bfs공부한 이후로 배열의 index주는 방식이 바뀌었다.
예전에는 꾸역꾸역 index 0부터 채워넣었지만,
이제는 유연하게 1부터 값을 채워넣는 방법을 쓴다.
훨씬 덜 헷갈린다!!
'Computer Engineering > 알고리즘 테스트' 카테고리의 다른 글
백준[2805] java -나무자르기 (0) | 2021.02.25 |
---|---|
백준[10773]- 제로 (java) (0) | 2021.02.25 |
백준[1764]-듣보잡 (0) | 2021.02.05 |
백준[1417]- 국회의원 선거 (0) | 2021.02.05 |
백준[1654]-랜선자르기 (0) | 2021.02.05 |