n,m =map(int,input().split())
#1
mylist= [0 for _ in range(n)]
for i in range(n) : mylist[i] = list(map(int,input().split()))
#2
mylist= []
for i in range(n): mylist.append(list(map(int,input().split())))
#3
mylist=[list(map(int,input().split()))for _ in range(n)]
# 원하는 데이터 위치 찾기
#1 들어있는 데이터를 찾고싶어요!
n,m = map(int,input().split())
mylist = [0 for _ in range(n)]
newlist= []
for i in range(n):
mylist[i] = list(map(int,input().split()))
for j in range(m):
if mylist[i][j] == 1:
newlist.append([i,j])
#2 더 간단하게는요
n, m = map(int,input().split())
mylist=[list(map(int,input().split())) for _ in range(n)]
newlist=[ (i,j) for i in range(n) for j in range(m) if mylist[i][j]==1]
#리스트 순회하기
#행 우선 순회
for i in range(len(arr)):
for j in range(len(arr[i])):
arr[i][j]
#열 우선 순회
for j in range(len(arr[0])):
for i in range(len(arr)):
arr[i][j]
#지그재그 순회
for i in range(len(arr)):
for j in range(len(arr[0])):
arr[i][j+(m-1-2*j)*(i%2)]
#자세히 설명하면 i가 짝수행일때는 그냥 j로 순서대로 계산
#i가 홀수일때는 j+m-1-2*j = m-1-j가 됨.
# m-1부터 m-2, m-3..이런식으로 줄어드는 방식이 된다는걸 알 수 있음
#델타 이용 2차 list 탐색
#네 방향의 인접list요소를 탐색할 때 사용하는 방법
#델타 값은 한 좌표에서 네 방향의 좌표와 x,y의 차이를 저장한 list로 구현
#index 범위 잘 제한해서 사용해야함
#델타값 이용해서 특정 원소 상하좌우에 위치한 원소를 저장할 수 있음.
#전치행렬
#모든 좌표에 대해 행 열 값을 바꾸면 본래 행렬이 되니까 주의
arr = [[1,2,3],[4,5,6],[7,8,9]]
for i in range(3):
for j in range(3):
if i<j:
arr[i][j], arr[j][i] = arr[j][i], arr[i][j]
# zip(interable*)이란 것이 있음
# :동일한 개수로 이루어진 자료형들을 묶어주는 역할을 하는 함수
alpha = ['a','b','c']
index = [1,2,3]
alph_index = list(zip(alpha,index))
print(alph_index) #[('a',1),('b',2),('c',3)]
arr [[1,2,3],[4,5,6],[7,8,9]]
print(list(zip(*arr)))
# 1 2 3
# 4 5 6
# 7 8 9
# [(1,4,7),(2,5,8),(3,6,9)]
#4836 [파이썬 S/W 문제해결 기본] 2일차 - 색칠하기
T = int(input())
for test_case in range(1,T+1):
N = int(input().split())
newlist = [0 for _ in range(10)]*10
count=0
for _ in range(N):
arr = list(map(int,input().split())) #r1,c1,r2,c2,color
for i in range(arr[2]-arr[0]+1):
for j in range(arr[3]-arr[1]+1):
newlist[i][j] += arr[4]
for i in range(10):
for j in range(10):
if newlist[i][j] ==3:
count+=1
print(f'#{test_case} {count}')
- 처음 코드였는데, 문제를 똑바로 안읽어서 임의로 10x10 배열로 했는데 진짜 그거였어서 운이 좋았음 ㅋ
근데 와중에 코드 틀리게 썼다.
- 접근자체는 좋았으나, index가 0부터 시작한다는 점을 반영해주어야함.여기서는 좌표값 그대로 주어졌음.
- 합이 3 일때 count 세는건 좋음. 근데 for문을 또 작성할 필요는 없다.
- 변수 5개를 나란히 입력받을 때 꼭 list를 쓰지않고 r1,r2,c1,c2,color = 이런꼴로 하고 split()하면 다 들어간다.
멍청한 좌식
#최종코드
T = int(input())
for test_case in range(1,T+1):
N = int(input())
arr = [[0 for _ in range(10)]for _ in range(10)]
count=0
for _ in range(N):
r1,c1,r2,c2,color = map(int,input().split())
for i in range(r1,r2+1):
for j in range(c1,c2+1):
arr[i][j] += color
if arr[i][j] == 3:
count+=1
print(f'#{test_case} {count}')