탐색
-
[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. 10. 19:58
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/60063 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 visited는 딕셔너리로 선언해서 키 값에 sx,sy,ex,ey 방문한 것들을 넣어주고 최소로 도착하는 시간을 기록해둠 동,서,남,북으로 이동했을 시에는 sx,sy,ex,ey의 순서는 그대로 유지된다. 90도로 꺽을 시에 생기는 유의 사항들 도형이 누워있거나 세워져 있거나에 따라 변하는 점이 달라짐. 90도로 꺽을 때 위에 있는, 왼쪽에 있는 점이 sx,sy가 되므로 좌표 ..
-
[탐색] 퍼즐 조각 채우기 (파이썬)코딩 테스트/프로그래머스 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. 5. 14. 16:58
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/150365 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방문했던 곳을 다시 가는 것이 허용되는 문제이므로 방문을 최소화하면서 최적의 길을 찾아야 함 방향 ( down,up, left,right ) 에 대해 알파벳 순서는 d, l, r, u이다. 방문을 최소화 하기 위해 최소 힙을 사용함. 알파벳 순서는 dlru 이므로 이것을 반대로 뒤집은 u, r, l d 로 탐색을 진행하면서 각 dist에 (-1 * dir) 을 더할 것 아래..
-
[탐색] 자물쇠와 열쇠 (파이썬)코딩 테스트/프로그래머스 2023. 4. 25. 19:33
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/60059 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 열쇠는 자물쇠 영역 밖으로도 나갈 수 있다는 것을 캐치 열쇠의 [n-1,n-1] 좌표가 자물쇠의 [0,0]에 닫을 수 있음 열쇠의 [0,0]이 자물쇠의 [m-1,m-1]에 닿을 수 있음 이 점을 해결하기 위해서는 자물쇠의 가로 세로를 3씩 곱해서 늘려줘야함 그런 다음 열쇠를 자물쇠의 오른쪽, 아래 방향씩 탐색하면 됨(방문 체크는 sx,sy 라는 시작 지점을 통해 체크) 큐에는..
-
[탐색] 경주로 건설 (파이썬)코딩 테스트/프로그래머스 2023. 4. 22. 19:59
문제 설명 https://school.programmers.co.kr/learn/courses/30/lessons/67259?language=python 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 방향에 따라 비용이 변하는 문제이다. 방향을 기억해줘야 하고 특정 위치에서 코너가 발생하더라도 방향에 따라 결과값이 바뀔 수 있다. 그러므로 위치에서의 비용을 기록하는 cost라는 그래프는 각각의 방향에 따라 비용을 저장해야함 큐에는 현재의 방향과 다음에 갈 방향이 직선인지 체크 할 dic이라는 변수도 저장(상하라면 0, 좌우라면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..