공부하고 기록하는, 경제학과 출신 개발자의 노트

프로그래밍/코딩테스트 문제풀이

[Python] 프로그래머스. 2020 카카오 recruit - 기둥과 보 설치 (Level 3)

inspirit941 2019. 11. 28. 19:11
반응형

https://programmers.co.kr/learn/courses/30/lessons/60061

 

코딩테스트 연습 - 기둥과 보 설치 | 프로그래머스

5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[

programmers.co.kr

처음에는 이걸 어떻게 풀어야 하나 접근을 못해서 꽤나 고생했는데, 문제의 해답은 의외로 단순했다.

맨 첫줄에 언급되는 '규칙'에 위배되는지 아닌지 확인하는 함수를 만든 뒤,

Build Frame의 매 단계마다 행동을 취한 뒤 규칙에 위배되면 되돌리고, 아니면 그대로 진행하면 된다.

 

Python의 경우 List나 set + tuple 중 어떤 걸 써도 시간초과가 나지 않는 문제였지만, List를 사용할 경우 수행속도가 느린 편이다.

 

리스트로 문제를 해결할 경우의 작업 수행속도
set과 tuple로 문제를 해결할 경우의 작업 수행속도

 

 

 

반응형