반응형
https://www.acmicpc.net/problem/17142
삼성 SW역량테스트 기출문제였다고 한다.
BFS와 DFS를 모두 사용하는 문제라고 하는데,
Python에서는 '경우의 수'를 뽑아내는 내장함수인 combinations를 활용하면 한 줄로 해결할 수 있다.
일반적인 BFS로 문제를 풀면 채점 99% 단계에서 오답 처리가 된다.
오답을 만들어내는 반례는 https://mygumi.tistory.com/352 이곳에서 상세한 설명을 해 주셨다.
어떻게 코드를 바꿔야 답을 찾게 할 수 있는지 한참을 고생했는데, 생각보다 간단하게 풀렸다.
결국 '빈 공간을 바이러스에 감염시키는 마지막 시점'만 반환하면 된다. 그게 정답이니까.
내가 BFS 코드 만드는 방식이 효율성에 문제가 있는 것 같다.
다른 삼성 SW역량테스트 기출문제에서도 비슷한 방식으로 BFS 코드를 만들었더니 시간초과가 자꾸 난다.
왜케 어렵누
반응형
'프로그래밍 > 코딩테스트 문제풀이' 카테고리의 다른 글
[Python] 프로그래머스. 짝지어 제거하기 (Level 3) (0) | 2019.10.31 |
---|---|
[Python] 프로그래머스. 가장 먼 노드 (Level 3) (0) | 2019.10.30 |
[Python] 프로그래머스. 2018 카카오 Recruit - 추석 트래픽 (0) | 2019.10.28 |
[Python] 백준 17298. 오큰수 (0) | 2019.10.27 |
[Python] 프로그래머스. 숫자 게임 (Level 3) (0) | 2019.10.26 |