[Python/코테공부] 특별한 이차원 배열 2
내 풀이
이것저것 시도해봤지만.. 정말 단순하게 구현했다.
def solution(arr):
for i in range(len(arr)):
for j in range(len(arr)):
if arr[i][j] != arr[j][i]:
return 0
return 1
직관적이다.
테스트 결과
테케가 쉬운 경우였을까..? 생각보다는 빠르다
다른 사람의 풀이
내가 원하는 수학적인 방식으로 푸는 방법이 있었다.
arr[i][j] == arr[j][i]
이 조건 자체가 symmetric matrix를 의미하는 것이므로, 파이썬 내장 함수인 zip을 이용하여 행과 열을 통째로 비교하면 되었다.
def solution(arr):
return int(arr == list(map(list, zip(*arr))))
테스트 결과
확실히 훨씬 빠르다.
이렇게 수학적으로 생각하고, 이를 코드로 구현할 수 있는 것이 코딩테스트에 합격하는 길 인것 같다.
* 문제 출저: 프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/181831
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'Python' 카테고리의 다른 글
[Python/Pytorch] 네트워크 파라미터 수 계산법 / #params 계산법 (0) | 2023.11.17 |
---|---|
[Python/코테공부] 날짜 비교하기 (0) | 2023.11.06 |
[Python/코테 공부] 1로 만들기 (0) | 2023.11.03 |
[Python/코테공부] 2의 영역 (0) | 2023.11.02 |
[Python/코테공부] 세로 읽기 (0) | 2023.11.02 |