백준 9단계 (2차원 배열) - 1, 3 번

LEE'S·2022년 11월 9일
0

백준

목록 보기
5/27

1번 (2738번)

n,m = map(int, input().split())

arr1 = []
arr2 = []
result = []

for i in range(n) :
  arr1.append(input().split())

for j in range(n) :
  arr2.append(input().split())

for i in range(n) :  
  add = []
  for j in range(m) :
    t = int(arr1[i][j]) + int(arr2[i][j])
    add.append(t)

  for x in add :
    print(x, end=' ')    

  print()
  

나는 대충 이런식으로 코드를 작성했다. 인터넷에 다른 풀이를 찾아보니까 비슷하지만 더 이해하기 쉽게? 다음과 같은 코드로 풀었다

A, B = [], []

N, M = map(int, input().split())

for row in range(N):
    row = list(map(int, input().split()))
    A.append(row)

for row in range(N):
    row = list(map(int, input().split()))
    B.append(row)
    
for row in range(N):
    for col in range(M):
        print(A[row][col] + B[row][col], end=' ')
    print()

list(map(int, input().split())) : list 로 만들어줌 !!

행렬문제에는 나도 변수 이름을 row, col 로 하는게 좋을 것 같다

3번 (2563번)

이때까지 풀었던 것들 중 가장 어려웠다;; 결국 못품..

num = int(input())

arr = []

for n in range(num) :
  rec = list(map(int, input().split())) 
  arr.append(rec) 

s = []
for a in range(len(arr)) :
  for b in range(a+1, len(arr)) : # arr[a][0] x , arr[a][1] y
    if abs(arr[a][0] - arr[b][0]) < 10 and abs(arr[a][1] - arr[b][1]) < 10: # 겹침
      over = (10-abs(arr[a][0] - arr[b][0])) * (10-abs(arr[a][1] - arr[b][1]))
      s.append(over)

print(100*num - sum(s))

결국 1시간정도 고민하다가(..ㅋㅋ) 인터넷에서 푸는 방법을 참고해서 다시 풀었다.

arr = [[0]*100 for _ in range(100)]

n = int(input())
for _ in range(n) : 
  x,y = map(int, input().split()) 
  for i in range(x, x+10) :
    for j in range(y, y+10) :
      arr[j][i] = 1

cnt = 0
for a in arr :
  cnt += a.count(1)

print(cnt)
  1. 100 * 100 인 2차원 배열을 만들기. 즉 도화지를 x,y축 100등분해서 하나의 넓이를 1로
  2. 2차원 배열을 for 문 돌려서 해당되는 부분은 1로 할당
  3. 마지막에 배열에 1 개수를 print 하기

여기서 알게된 문법은..

  • for _ in range(n) 여기서 굳이 변수명이 필요 없을 때는 언더바를 사용한다
  • [0]*100 을 하는 것은 0이 100개 있는 배열 만들때
  • [[0] for _ in range(100)] 은 [0] 리스트를 100개를 만드는 것이다. for문 밖에 배열괄호를 묶었으므로 100개의 리스트를 감싸는 리스트, 즉 2차원 배열을 만드는것)
  • a.count(1) : 배열a 에서 1이 몇개인지를 찾아라
profile
기록 블로그

0개의 댓글

관련 채용 정보

Powered by GraphCDN, the GraphQL CDN