CS/알고리즘_문제풀이(파이썬)

2차원 조회

Jedy_Kim 2021. 5. 23. 20:46
728x90

입력

첫 줄에 n, m이 주어진다.

두 번 째 줄부터 n개의 줄에 각 m개의 수가 주어진다.

(3 ≤ n, m ≤ 100, 1 ≤ 수열의 구성하는 수 ≤ n X m)

출력

n줄에 각 인덱스마다 인접한 인덱스에 같은 수가 있으면 1을, 없으면 0을 출력한다.

입력의 예 1

3 5

2 3 1 1 4

1 3 2 3 4

1 2 7 3 7

출력의 예 1

0 1 1 1 1

1 1 0 1 1

1 0 0 1 0

입력의 예 2

2 5

1 2 1 3 2

1 2 1 3 2

출력의 예 2

1 1 1 1 1

1 1 1 1 1

입력의 예 3

3 7

2 2 2 3 3 3 4

1 3 1 2 1 3 1

2 4 2 4 2 3 3

출력의 예 3

1 1 1 1 1 1 0

0 0 0 0 0 1 0

0 0 0 0 0 1 1

입력의 예 4

3 3

1 2 3

4 5 6

7 8 9

출력의 예 4

0 0 0

0 0 0

0 0 0

 

#코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
n, m  = map(int, input().split())
frame = [list(map(int, input().split())) for _ in range(n)]
arr   = [[-1 for _ in range(110)] for _ in range(110)]
 
for i in range(len(frame)):
  for j in range(len(frame[i])):
    arr[i+1][j+1= frame[i][j]
    
for i in range(len(frame)):
  for j in range(len(frame[i])):
    # 상, 하, 좌, 우
    if arr[i+1][j+1== arr[i][j+1or arr[i+1][j+1== arr[i+2][j+1or arr[i+1][j+1== arr[i+1][j] or arr[i+1][j+1== arr[i+1][j+2]:
      frame[i][j] = 1
    else:  
      frame[i][j] = 0
    
 
for i in range(len(frame)):
  for j in range(len(frame[i])):
    print(frame[i][j], end=' ')
  print()
 
cs

 

반응형

'CS > 알고리즘_문제풀이(파이썬)' 카테고리의 다른 글

스택 구현하기  (0) 2021.05.24
조회 알고리즘  (0) 2021.05.23
1차원 조회  (0) 2021.05.23
밀기 알고리즘 -- 파이썬 데크(deque)  (0) 2021.05.23
역방향 밀기  (0) 2021.05.23