본문 바로가기

코딩 테스트/BFS

(4)
[프로그래머스] 부대복귀 with Kotlin 문제n: 총 지역 수roads: 연결되어 있는 두 지역의 정보sources: 각 부대원이 위치한 서로 다른 지역의 정보destination: 강철부대가 위치한 지역두 지역간의 길을 통과하는데 걸리는 시간은 모두 1이다.sources의 지역에 있는 각 부대원들은 강철 부대로 최단 시간 복귀하고자 한다.각 부대원들이 복귀까지 걸리는 최단 시간을 반환하는 문제복귀가 불가능한 부대원은 -1을 반환한다. 풀이 과정각 지역별로 연결되어 있는 타지역의 정보를 저장 (hashMap)destination을 1번 노드로 설정한 후, 각 지역 별 노드를 배열에 저장각각의 인덱스가 지역번호가 된다.저장은 1번의 hashMap을 이용한 BFS를 사용노드는 복귀까지의 소요 시간이 되므로, 노드 - 1 == 복귀까지 걸리는 시간이..
[프로그래머스] 2020 카카오 인턴쉽 경주로 건설 with Kotlin 문제크기가 n*n인 1과 0으로 이루어진 2차원 배열이 주어진다.시작은 0,0 이며 도착지는 n-1, n-1 이다. 1은 벽으로 이루어져있어 지나갈 수 없고, 직선은 100의 비용이, 코너는 500의 비용이 소모된다.시작부터 도착지점까지 도로를 건설한다고 할 때, 건설할 수 있는 최소 비용의 금액을 반환하여라. 자세한 문제는 프로그래머스에서https://school.programmers.co.kr/learn/courses/30/lessons/67259# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이 과정벽을 끼고 도착지까지의 최소 거리를 구하는 문제의..
[프로그래머스] 2019 KAKAO BLIND RECRUITMENT 후보키 with Kotlin 문제 위와 같이 2차원 배열로 DB가 주어졌을때, 후보키의 개수를 구하는 문제 후보키란? 관계 데이터베이스에서 릴레이션(Relation)의 튜플(Tuple)을 유일하게 식별할 수 있는 속성(Attribute) 또는 속성의 집합 중, 다음 두 성질을 만족하는 것을 후보 키(Candidate Key)라고 한다. 유일성(uniqueness) : 릴레이션에 있는 모든 튜플에 대해 유일하게 식별되어야 한다. 최소성(minimality) : 유일성을 가진 키를 구성하는 속성(Attribute) 중 하나라도 제외하는 경우 유일성이 깨지는 것을 의미한다. 즉, 릴레이션의 모든 튜플을 유일하게 식별하는 데 꼭 필요한 속성들로만 구성되어야 한다. 즉, 각 행이 중복되지 않고 최소한의 속성만 갖고 있을 때 해당 속성들을 후..
[프로그래머스] 리코쳇 로봇 LV.2 with Kotlin 문제 주어진 2차원 배열에서 R의 위치에 있는 로봇에 G까지 도달하는데 걸리는 최소 횟수 구하기 조건 1. 로봇은 상하좌우만 움직일 수 있다. 2. D는 벽 3. 막히는 구간까지 미끄러지듯 쭉 가야함 4. 목적지에 도달할 수 없다면 -1 반환 ...D..R .D.G... ....D.D D....D. ..D.... 풀이 과정 1. 이동했던 방향으로 다시 돌아가지 않도록 하기 2. 방문 했던 좌표는 pass 첫번째 시도 (DFS) 이동하는 모든 곳을 확인 테스트는 통과했지만 모든 경우의 수를 확인하는 방법으로 시간 초과 class Solution { val dx = arrayOf(1, -1, 0, 0) val dy = arrayOf(0, 0, -1, 1) var answer: Int = 0 fun move(..