-
[D3] SWEA 15868. XOR 2차원 배열SWEA 2024. 4. 29. 10:46
*파이썬이라 채점하지는 않음*
1. 접근 방식
xor는 두 원소의 값이 0, 다르면 1이다.
2. 디테일한 구현
a[0]의 값을 0으로 세팅해준다.
i=0~n, j=0~m을 탐색하게 될텐데
1)i=0이고 j=0~m일때
a[0]=0에 맞는 b 배열의 값이 세팅될 것이다.
이 값들은 변화할 수 없다.
2)i=1~n, j=0~m
(1)j=0일때
a[i]값을 세팅해준다,
(2)j=1~m일 때
xor 조건에 맞는 값인지
확인한다.
맞지 않는 값이면 'no'를 출력해준다.
3. 코드 구현
123456789101112131415161718192021222324252627282930313233343536373839404142def check(T):for i in range(0,n):for j in range(0,m):if i==0:if T[i][j]==0:b[j]=a[i]else:b[j]=abs(a[i]-1)else:if j==0:if T[i][j]==0:a[i]=b[j]else:a[i]=abs(b[j]-1)else:if T[i][j]==0:if a[i]!=b[j]:return Falseelse:if abs(a[i]-1)!=b[j]:return Falsereturn Trueif __name__=='__main__':sys.stdin=open('input2.txt','r')t=int(input()) ## 총 테스트 케이스 개수for tc in range(t):n,m=map(int,input().split()) ##n=행의 갯수, m=열의 갯수T=[list(map(int,input())) for _ in range(n)] ##XOR 배열a=[0]*nb=[0]*mif check(T):print(f'#{tc+1} yes')else:print(f'#{tc+1} no')cs 4. 깨달은 점 및 반성
결국, 반복문 놀음이다.
문제 풀이는 반복문을 가지고 노는 것이라는 것을 잊지 말자.
'SWEA' 카테고리의 다른 글
[D3] SWEA 15612. 체스판 위의 룩 배치 (0) 2024.04.29 [D3] SWEA 15758. 무한 문자열 (0) 2024.04.29 [D3] SWEA 16002. 합성수 방정식 (0) 2024.04.28 [D3] SWEA 16800. 구구단 걷기 (0) 2024.04.28 [D3] SWEA 17642. 최대 조작 횟수 (0) 2024.04.28