728x90
320x100
정수를 나선형으로 배치하기
def solution(n):
answer = [[None for j in range(n)] for i in range(n)]
move = [[0, 1], [1, 0], [0, -1], [-1, 0]]
x, y, m = 0, 0, 0
for i in range(1, n**2 + 1):
answer[y][x] = i
if y + move[m][0] >= n or x + move[m][1] >= n or answer[y + move[m][0]][x + move[m][1]]:
m = (m + 1) % len(move)
y, x = y + move[m][0], x + move[m][1]
return answer
def solution(n):
if n == 1:
return [[1]]
answer = [[0 for j in range(n)] for i in range(n)] # 배열 초기화
x = 0
y = 0
dir = 'r'
for i in range(n*n):
answer[x][y] = i + 1
if dir == 'r':
y += 1
if y == n-1 or answer[x][y+1] != 0: # 맨 끝에 도달했거나 가려는 곳에 이미 값이 있으면 방향 전환
dir = 'd'
elif dir == 'd':
x += 1
if x == n-1 or answer[x+1][y] != 0:
dir = 'l'
elif dir == 'l':
y -= 1
if y == 0 or answer[x][y-1] != 0:
dir = 'u'
elif dir == 'u':
x -= 1
if x == n-1 or answer[x-1][y] != 0:
dir = 'r'
return answer
- 출처 - 프로그래머스 다른사람 풀이 + https://oogg-zg3qy.tistory.com/12
- 이것은 내 풀이가 아니고 다른 분들의 풀이다. 나는 뜯어봐야 한다 ㅠ
특별한 이차원 배열 2
def solution(arr):
answer = 1
for i in range(len(arr)):
for j in range(len(arr[i])):
if arr[i][j] != arr[j][i]:
answer = 0
return answer
정사각형으로 만들기
def solution(arr):
answer = [[]]
x = len(arr)
y = len(arr[0])
if x > y :
for i in range(len(arr)):
for j in range(x-y):
arr[i].append(0)
elif x < y :
for i in range(y-x):
arr.append([0]*len(arr[0]))
else :
return arr
return arr
이차원 배열 대각선 순회하기
def solution(board, k):
answer = 0
for i in range(len(board)):
for j in range(len(board[i])):
if i+j <= k :
answer += board[i][j]
return answer
728x90
320x100
'💻 하나씩 차곡차곡 > 프로그래머스 (Python)' 카테고리의 다른 글
[프로그래머스/python/Lv1] 음양 더하기 (0) | 2023.12.13 |
---|---|
[프로그래머스/python/Lv1] 나머지가 1이 되는 수 찾기 (0) | 2023.12.12 |
코딩 기초 트레이닝 Day24 - 커피 심부름, 그림 확대, 조건에 맞게 수열 변환하기 3, l로 만들기, 특별한 이차원 배열 1 (2) | 2023.11.07 |
코딩 기초 트레이닝 Day23 - 부분 문자열, 꼬리 문자열, 정수 찾기, 주사위 게임 1, 날짜 비교하기 (2) | 2023.11.06 |
코딩 기초 트레이닝 Day22 - 0 떼기, 두 수의 합, 문자열로 변환, 배열의 원소 삭제하기, 부분 문자열인지 확인하기 (0) | 2023.11.03 |