dfs
-
[DFS/BFS] 아이템 줍기 (파이썬) - 진행 중코딩 테스트/프로그래머스 2023. 6. 13. 15:15
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/87694 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 gr에는 직사각형들의 변에 해당하는 좌표들에 넘버를 달아줌. (0번째 rec면 그 변 좌표들에 gr[x][y].append(0) ) inner 라는 그래프를 따로 만들어서 해당 직사각형안에 있는 모든 좌표들에 True값을 부여해줌 현재 위치 x,y 의 직사각형 넘버를 따온다. 다음으로 이동 할 수 있는 nx,ny 의 gr값(직사각형 넘버)이 이전 x,y에서의 넘버와 같고 gr..
-
[탐색] 퍼즐 조각 채우기 (파이썬)코딩 테스트/프로그래머스 2023. 6. 2. 17:54
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/84021 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 문제를 읽어보면 table에 있는 퍼즐 조각을 하나하나 옮겨보고 gb( game_board) 빈 공간에 딱 들어 맞는지 알아보는 문제 같다. 나 같은 경우는 gb에서 0으로 쭉 이어진 조각들을 구한 뒤 table을 탐색하면서 해당 조각이 table과 딱 들어맞는지 계산 함.(회전 포함) gb에서 0으로 쭉 이어진 각 조각들을 구해서 peace 라는 리스트에 담아줌( 이 때 각..
-
[탐색] 경주로 건설 (파이썬)코딩 테스트/프로그래머스 2023. 4. 22. 19:59
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/67259?language=python 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방향에 따라 비용이 변하는 문제이다. 방향을 기억해줘야 하고 특정 위치에서 코너가 발생하더라도 방향에 따라 결과값이 바뀔 수 있다. 그러므로 위치에서의 비용을 기록하는 cost라는 그래프는 각각의 방향에 따라 비용을 저장해야함 큐에는 현재의 방향과 다음에 갈 방향이 직선인지 체크 할 dic이라는 변수도 저장(상하라면 0, 좌우라면1) 나머지는 평범..
-
[탐색] 여행 경로 (python)코딩 테스트/프로그래머스 2023. 4. 16. 20:05
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/43164 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 BFS/DFS 중에서 BFS로 접근 경로가 여러개 일 경우 알파벳 순으로 사용하므로 ticket들 정렬 gr이라는 딕셔너리에 [출발 지역]:[tickets idx] 저장 큐에 현재 공항, 이용한 경로, 사용한 티켓 idx 를 담음 이용 경로의 갯수와 티켓+1 이 같으면 종료 (모두 사용한 거니까) 딕셔너리에서 키 값이 없는 것을 그냥 꺼내오면 에러가 나서 get으로 걸러내기 ..
-
[동적 계획법] 등굣길코딩 테스트/프로그래머스 2023. 3. 31. 18:52
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 좌표 (1,1)에서 출발 해서 (n,m)으로 도착하는 최단 경로의 개수를 구하는 문제(문제에서는 m,n 이라 했는데 평소 n,m으로 습관이 되어있어서 n,m으로 도착하는 걸로 설정해서 품) 최단 경로로 도착하는 거리가 아닌 경로의 개수를 구하는거임 visited 그래프에서 웅덩이인 부분은 -1로 미리 표시 (못 건넘) 오른쪽과 아래로만 이동 하니 이전 경로로 빠질 경우 x 1..
-
[DFS/BFS] 단어 변환코딩 테스트/프로그래머스 2023. 3. 30. 19:24
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 begin 에 담긴 단어를 알파벳 하나씩 바꿔가며 target에 담긴 단어로 변환하는 과정 규칙은 words 리스트에 담긴 단어들로만 변환 할 수 있음. 딕셔너리를 이용해서 풀 수도 있겠지만 그냥 인덱스로 계산해서 코드를 짬 begin이 변할 수 있는 것들도 찾기 위해 일단 words에 담음 words에 담긴 각각의 단어들에 대해 자신이 변할 수 있는 모든 경로를 찾아서 그래..
-
[DFS/BFS] 네트워크코딩 테스트/프로그래머스 2023. 3. 30. 15:18
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 연결된 노드들을 확인한 후 0번 노드부터 BFS 방식으로 탐색하면서 한번에 연결지을 수 있는 것들 모두 연결 0번 노드로부터의 탐색이 끝나면 1,2,3,4,5,...n-1번 노드 순서대로 탐색하는데 이미 탐색했던 거라면 continue 탐색하지 않았더라면 새로운 네트워크의 발견이므로 answer+1 소스 코드 from collections import deque def sol..