본문 바로가기

코딩테스트 문제풀이

[프로그래머스, javascript] 여행 경로

function solution(tickets) {
  var routes = []
  fna([], tickets);
  function fna(route, left){
    if(left.length == 0){
      let tmp = ['ICN']
      route.map(v => {tmp.push(v[1])})
      routes.push(tmp)
      return 
    }

    if(route.length > 0 &&
      route[0][0] !== 'ICN')
      return
    
    if(route.length >= 2&&
      route[route.length-2][1] !== route[route.length-1][0])
      return
    
    left.map((v, i) =>{
      fna([...route, v], left.filter((v,idx) => i!=idx))
    })
  }
  console.log(routes)
  return routes.sort()[0];
}

재귀가 참 편한 것 같당