인프런 커뮤니티 질문&답변

kkh185924님의 프로필 이미지
kkh185924

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

3-E

3-E 뮤탈리스크 질문입니다!

작성

·

236

0

코드를 짜면서 scv가 하나라도 파괴되고 그 후에 공격하는 6가지 경우 중에 유효하지 않은 공격이 있다고 생각했습니다.

예를 들어 상태값 (2,2,0)에서 {9,3,1}과{3,9,1}만 유효하고 나머지 공격들은 유효하지않다고 판단했습니다. 한가지 예로{1,93,9}인 경우에 파괴된 scv를 먼저 공격하는게 말이 안된다고 생각했습니다.

근데 이런 생각을 할 필요가 없는게 어차피 유효하지 않은 공격에서는 최단거리가 나올수 없기 때문에 구별하는 코드를 넣을 필요가 없다고 결론내렸는데 이게 맞는 생각인가요??

답변 2

0

큰돌님의 프로필 이미지
큰돌
지식공유자

kkh님 ㅎㅎ

늦게 답변드려 죄송하다는 말씀을 먼저 드립니다..

답변드리면 다음과 같습니다.

 

그렇게 푸셔도 됩니다만.. 그렇게 풀지 않으셔도 됩니다.

이게 무슨 소리냐면..

예를 들어 scv가 2개가 있을 때

어떻게 공격하는게 최선일까요?

9 3?

3 1 ?

당연히 9 3 이겠죠? 그렇기 때문에 중복적으로 {9, 3}, {3, 1}에 대한 경우의 수를 집어넣어도 답은 {9, 3}으로 흐를게 당연하기 때문에 중복으로 처리해도 되고 그냥 {9, 3}으로만 처리를 해도 됩니다.

image

P.S

저는 단순히 경우의 수로만 생각했었는데 kkh님께서 질문을 주셔서 저도 생각치못했던 부분을 생각하게 되었네요. 감사합니다.

0

큰돌님의 프로필 이미지
큰돌
지식공유자

음.. 근데 이부분은 좀 애매하네요. 파괴된 SCV를 공격하지는 않는다. = 이게 관례이긴 한데 문제에서 해당 조건이 없기 때문에 이부분에 대한 로직을 넣어야할지는 애매합니다. 이부분에 대한 테스트를 좀 해보고 다시 답변드리겠습니다.

kkh185924님의 프로필 이미지
kkh185924

작성한 질문수

질문하기