Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- spring security
- with recursive
- java 기술면접
- 파이썬
- 백준 17626
- 프로래머스
- 백준 15685
- 백준 16235
- sql 기술면접
- JPA
- spring oauth
- 백준 파이썬
- 백준 16236
- 백준 19238
- 백준 17779
- MSA
- JVM
- Spring
- 백준
- 백준 16719
- Spring Boot
- java
- Coroutine
- MySQL
- 프로그래머스
- 웹어플리케이션 서버
- Kotlin
- re.split
- springboot
- spring cloud
Archives
- Today
- Total
시작이 반
[프로그래머스] 여행경로(python 파이썬) 본문
SMALL
갈수 있는 여행 경로를 정하는 문제
dfs로 풀었지만 테스트케이스 1번만 통과가 안된다...
무슨 문젠지 모르겠다.. (질문에 있는 모든 케이스 통과)
1번을 통과하기위해서는 같은 티켓이 여러장 있다고 가정하고 풀면된다고 하는데 고려해서 풀었음에도 통과가 안된다..
(ㅠㅠ 못풀었음)
def solution(tickets):
answer = []
place = list()
i = 0
for ticket in tickets:
if ticket[0] == 'ICN':
ticket.append(i)
place.append(ticket)
i += 1
place.sort(key=lambda x: x[1])
for j in place:
visited = [False] * len(tickets)
visited[j[2]] = True
dfs(j, tickets, visited, 1, answer)
if len(answer) == len(tickets) + 1:
break
else:
answer.clear()
return answer
def dfs(start, tickets, visited, depth, answer):
if depth == len(tickets):
answer.append(start[0])
answer.append(start[1])
return
place = list()
i = 0
for ticket in tickets:
if ticket[0] == start[1]:
if not visited[i]:
ticket.append(i)
place.append(ticket)
i += 1
place.sort(key=lambda x: x[1])
if not place:
if answer:
answer.pop()
visited[start[2]] = False
for i in place:
if not visited[i[2]]:
visited[i[2]] = True
answer.append(start[0])
dfs(i, tickets, visited, depth + 1, answer)
LIST
'알고리즘 > Programmers' 카테고리의 다른 글
[프로그래머스] 정수 삼각형(python 파이썬) (0) | 2021.03.11 |
---|---|
[프로그래머스] 입국심사(python 파이썬) (0) | 2021.03.11 |
[프로그래머스] 단어 변환(python 파이썬) (0) | 2021.03.10 |
[프로그래머스] 네트워크(python 파이썬) (0) | 2021.03.10 |
[프로그래머스] 타겟넘버 (python 파이썬) (0) | 2021.03.10 |