board = []
count = 0
n = 5
for i in range(n) : #리스트 입력
board.append(list(map(int, input().split())))
def check(target, position):
for pos in position:
if pos is not None and target >= pos:
return False
return True
checked = []
for x in range(n) :
for y in range(n) :
[up, down, right, left] = [None]*4
if x-1 >= 0: #위(up) 행 초과 X
up = board[x-1][y] #위
if y+1 < n: #오른쪽(right) 열 초과X
right = board[x][y+1] #오른쪽
if y-1 >= 0: #왼쪽(left) 열 초과 X
left = board[x][y-1] #왼쪽
if x+1 < n: #아래쪽(down) 행 초과 X
down = board[x+1][y] #아래
num = board[x][y]
if check(num, [up, right, down, left]):
checked.append([x, y])
for item in checked:
board[item[0]][item[1]] = "*"
for i in range(len(board)) :
for j in range(len(board[i])) :
print(str(board[i][j])+" ", end="")
print("")
문제
5x5 2차원 배열이 주어질 때 어떤 원소가 상하좌우에 있는 원소보다 작을 때 해당 위치에 * 을 표시하는 프로그램을 작성하시오. 경계선에 있는 수는 상하좌우 중 존재하는 원소만을 비교한다.
입력
5x5 행렬의 정보가 25 개의 수로 주어진다. 각 수는 0 에서 9 사이 수이다.
출력
*를 포함한 행렬을 출력예의 형식으로 출력한다.
예제 입력
3 4 1 4 9
2 9 4 5 8
9 0 8 2 1
7 0 2 8 4
2 7 2 1 4
예제 출력
3 4 * 4 9
* 9 4 5 8
9 0 8 2 *
7 0 2 8 4
* 7 2 * 4
풀이
'코테풀이 > 구현' 카테고리의 다른 글
공기청정기-2차원 밀기(이차원 리스트 시계방향 테두리 회전) (0) | 2022.02.15 |
---|---|
[백준 | 실버5] 2578:빙고 (0) | 2022.01.06 |
[알고리즘랩스]반복문&배열_array3(대각선 출력) (0) | 2022.01.04 |
[랩스 | 구현] 반복문&배열_숫자피라미드(별찍기, 피라미드) (0) | 2022.01.04 |
[프로그래머스 | 2단계] 행렬 테두리 회전하기(사각형 테두리 화전) (0) | 2022.01.02 |
[알고리즘랩스] 3. 완전탐색_offset(4방향 체크, 구현)