Algorithm/Backtracking

난이도: Lv.3유형: 백트래킹해결 여부: 틀림 내가 생각했던 아이디어/큰 가닥처음에 어떻게 풀어야 되나 많이 고민했다. 양을 그리디로 먹어야 하나? 일단 양-늑대가 양수인거 먼저 get 하고 나머지는 이후에 후반부에 판단해야 하나? 라고 생각하다가 백트래킹 문제인 것 까지는 잡았다.오답 이유근데 백트래킹 자체의 문제 구조화와 기준이 약해서. 일단은 답 보고 배우면서 구조화하기로 했다. 해답아래와 같다. 백트래킹 문제는 좀 더 연습해야 겠다또한 이건 그래프가 아닌 단방향 이진트리여서 visited도 필요 없었다.. #기억할 문법 #딕셔너리에 값 있는지 판단할때는 다음과 같이 한다.if value in dictionary: (O) if dictionary[value]: (X)# 상위 블럭(함수)의 변수 사..
난이도: Lv.3유형: 백트래킹해결 여부: 틀림내가 생각했던 아이디어/큰 가닥처음에는 굉장히 간단해보였다. 그런데, 가능한 경우의 수가 여러개 라는점. 그런데 항상 가능은 하기에 그걸 찾아야 한다는 것. 그래서 서순이나 이런거에 따라 달라질 수 있으며, 모든 경로를 사용해야 한다는 한붓그리기 같은 조건이 있지만, 단방향 화살표라 한붓그리기 로직을 그대로 활용 할 수 없다는 점은 어렵게 만들었다.그래서 일단 정렬 후에 완성 경로 하나 찾으면 바로 return 하는 식으로 DFS를 짜서 경로를 마무리하도록 해야겠다. 고 생각해서 짰고 틀렸다. 오답 이유copy 과정에서의 파이썬 특유의 얕은 복사 문제. copy 해서 복사본 써도 막힌다.백트래킹 고려 안함. DFS 인 동시에 백트래킹 문제여서 dfs 거치고 ..
난이도: Lv.3유형: 백트래킹해결 여부: 틀림내가 생각했던 아이디어/큰 가닥큰 가닥은 맞았는데 이제 곱연산을 하면서 겹치는 중복은 제외하는 로직을 어떻게 하는가가 문제였다.ban_id와-user_id가 매칭되는 경우의 수를 구하는건데, 1대1매칭인데, 가능한건 여러개여서 겹치면 안되는 그런 문제였다. 불량사용자와 그냥 사용자 중 어떤 걸 기준으로 삼는게 좋을지 발상이 있나 싶어서 일단 둘다 만들었다. 그래서 각 리스트에서 하나씩 뽑아보고, 그 뽑은것들안에서 중복이 없게 해야했다.아니면 1~n까지 쭉 하나씩뽑되 버리고 중복이 없게 하거나...오답 이유product가 아닌 combine으로 접근한게 패착이었다. DFS로도 접근을 못했다.해답-DFs를 쓰거나 product연산을 쓰거나 아래처럼 product..
걍판자
'Algorithm/Backtracking' 카테고리의 글 목록