본문 바로가기

알고리즘 문제풀이/코드트리(삼성 기출)

토스트 계란틀(2018 하반기 오전 2번, 백준 16234 인구 이동)

문제 링크: https://www.codetree.ai/frequent-problems/toast-eggmold/description

 

코드트리

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

*같은 문제: 백준 16234 - 인구 이동

 

BFS 또는 DFS를 도는데, 조건에 따라서 이동 가능한지 여부를 판단해야 한다. 해당 회차에서 한 번도 계란틀이 열리지 않는다면 그 순간 for문을 탈출하도록 구현했다.

 

여담으로 이 코드를 그대로 백준에 내봤더니 python3으로는 시간초과가, pypy3으로는 통과가 되더라. python3으로 정확히 80%에서 시간초과가 뜨는 경우가 많은 것 같은데... 왜 그런지는 스포일러니까 궁금하다면 아래 접은글을 열어보시길.

 

실제 삼성 코테에서는 어느 조건까지 고려해야 문제가 풀리도록 나왔는지 궁금해진다. 

더보기

꼭 python3으로 풀고 싶다면 이 방법을 참고해보자. 백준 기준으로, 연합이 한 번 만들어졌다면 거기에서 탐색을 시작하지 않아도 된다는 아이디어로 연산 오버헤드를 줄일 수 있다고 한다. 실제로 python3 최소 시간으로 푼 사람의 코드도 저런 식으로 구현했더라.