728x90
[파이썬] 프로그래머스 Lv0. 정수를 나선형으로 배치하기, 특별한 이차원 배열 2 , 정사각형으로 만들기
안녕하세요 머킹입니다!
다들 잘 지내시나요?
오늘 테크 블로그 리뷰 하는 날인데 늦어버렸습니다..ㅎㅎ
오늘 문제 푸는데 예전에 pccp 교육 들었던 게 생각나서
되게 반가웠어요.
정수를 나선형으로 배치하기
def solution(n):
answer = [[0] * n for _ in range(n)]
num = 1
top, bottom, left, right = 0, n - 1, 0, n - 1
while num <= n**2:
for i in range(left, right + 1):
answer[top][i] = num
num += 1
top += 1
for i in range(top, bottom + 1):
answer[i][right] = num
num += 1
right -= 1
if top <= bottom:
for i in range(right, left - 1, -1):
answer[bottom][i] = num
num += 1
bottom -= 1
if left <= right:
for i in range(bottom, top - 1, -1):
answer[i][left] = num
num += 1
left += 1
return answer
진짜 진짜 어렵게 풀었습니다.
pccp에서 배웠던 이론을 짠하고 바로 표현하고 싶은데
아직 잘 안되네요.. 더 노력해야겠습니다.
특별한 이차원 배열 2
이 문제가 무슨 소릴까...
계속 생각해 보다가 이해가 안 되면 저는 펜을 드는데요.
역시 펜을 들어서 노트에 적어보니까 이해가 됐습니다.
def solution(arr):
n = len(arr)
for i in range(n):
for j in range(i+1, n):
if arr[i][j] != arr[j][i]:
return 0
return 1
def solution(arr):
return int(arr == list(map(list, zip(*arr))))
와 이런 풀이...
볼 때마다 존경하게 됩니다.
이런 풀이를 보면 순서가 항상
와 대단하다 나도 더 간결하게(?) 풀어야지! -> 잘 모르겠어서 일단 막일로 풀기 -> 제출....
이런 사이클을 돌게 되는 것 같아요 ㅎㅎ
그래서 생각해 본 게 이런 풀이를 기억해 두고
저번에 그 풀이로는 못 푸나?를 먼저 생각하면 좋을 것 같다는 다짐을 했습니다
정사각형으로 만들기
def solution(arr):
row_count = len(arr)
col_count = len(arr[0]) if row_count > 0 else 0
if row_count > col_count:
for i in range(row_count):
arr[i] += [0] * (row_count - col_count)
elif row_count < col_count:
for i in range(row_count):
arr[i] += [0] * (col_count - row_count)
return arr
어렵게 풀었는데..!
네.. 뒤에 잘 못 들어가고 있네요 ㅎㅎ
def solution(arr):
row_count = len(arr)
col_count = len(arr[0]) if row_count > 0 else 0
if row_count > col_count:
for i in range(row_count):
arr[i] += [0] * (row_count - len(arr[i]))
elif row_count < col_count:
for i in range(row_count, col_count):
arr.append([0] * col_count)
return arr
이렇게 바꿨습니다!
def solution(arr):
n=len(arr)
m=len(arr[0])
if n>m:
for i in range(n):
for j in range(n-m):
arr[i].append(0)
else:
for i in range(m-n):
arr.append([0]*m)
return arr
이 방법도 되게 좋네요 ㅎㅎ
'오늘부터 코딩테스트' 카테고리의 다른 글
[오늘부터 코딩테스트]파이썬으로 프로그래머스 코딩 입문 프로그램 풀기 (0) | 2023.11.22 |
---|---|
[오늘부터 코딩테스트]코딩 기초 문제 트레이닝 끝 (0) | 2023.11.21 |
[오늘부터 코딩테스트]파이썬으로 프로그래머스 코딩 기초 프로그램 풀기 (0) | 2023.11.17 |
[오늘부터 코딩테스트]파이썬으로 프로그래머스 코딩 기초 프로그램 풀기 (0) | 2023.11.16 |
[오늘부터 코딩테스트]파이썬으로 프로그래머스 코딩 기초 프로그램 풀기 (0) | 2023.11.14 |