• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

3-A 치킨집과 집과의 거리 계산 로직 문의

23.08.28 16:04 작성 조회수 194

1

안녕하세요. 강사님,

강사님의 코딩테스트 강의 열심히 듣고 있습니다.

 

오늘 문제는 다소 어렵네요..

치킨집과 집 과의 거리 계산 로직이

home 리스트 순서와 chicken 리스트 순서대로 구하던데, 순차적으로 index를 부여받아서 순차적으로 dist 구하면 되는건가요??

 

for(pair<int, int> home : _home){
            int _min = 987654321;
            for(int ch : cList){
                int _dist = abs(home.first - chicken[ch].first) + abs(home.second - chicken[ch].second);
                min = min(min, _dist);
            }


저는 거리 계산도 bfs로 풀어야 하는줄 알았는데,
어떤 조건일 때 bfs로 안풀어도 되는지 궁금해요


답변 1

답변을 작성해보세요.

0

안녕하세요 ㅎㅎ

home 리스트 순서와 chicken 리스트 순서대로 구하던데, 순차적으로 index를 부여받아서 순차적으로 dist 구하면 되는건가요??

>> 네 맞습니다. 치킨집과 도시의 치킨거리 경우의 수를 순차적으로 구합니다.

 

저는 거리 계산도 bfs로 풀어야 하는줄 알았는데,
어떤 조건일 때 bfs로 안풀어도 되는지 궁금해요

>>

문제를 보시고 판단하시면 됩니다.

문제를 보시면 다음과 같이 되어있습니다.

이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 집을 기준으로 정해지며, 각각의 집은 치킨 거리를 가지고 있다. 도시의 치킨 거리는 모든 집의 치킨 거리의 합이다.

임의의 두 칸 (r1, c1)과 (r2, c2) 사이의 거리는 |r1-r2| + |c1-c2|로 구한다.

문제에서 만약 거리를 (r - c) ^ 3이다. 라고 하면 그 거리로 계산해서 로직을 구축하시면 됩니다.

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.