본문 바로가기
  • AI 개발자가 될래요
Python

[Python/코테공부] 특별한 이차원 배열 2

by 꿀개 2023. 11. 6.

[Python/코테공부] 특별한 이차원 배열 2

특별한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