2014-11-10 5 views
-2

AI 섹션의 HackerRank에서 "Bot save princess - 2"문제에 대한 해결책은 공주의 위치에 대한 입력을 읽습니다. 해결책이 그렇게해야합니까? 나는 그것이 얼마나 효율적으로 다른 방법으로 해결 될 수 있는지 보지 못합니다.이 인공 지능 도전에 속이는거야?

문제 :

https://www.hackerrank.com/challenges/saveprincess2

솔루션

def nextMove(r,c, pr, pc): 
    if r < pr: 
     r += 1 
     return("DOWN") 
    elif r > pr: 
     r -= 1 
     return("UP") 

    if c < pc: 
     c += 1 
     return("RIGHT") 
    elif c > pc: 
     c -= 1 
     return("LEFT") 

n = int(input()) 
r,c = [int(i) for i in input().strip().split()] 
grid = [] 
pr = 0 
pc = 0 

for i in range(0, n): 
    inp = input() 
    if inp.find('p') >= 0: 
     pr = i 
     pc = inp.find('p') 
    grid.append(inp) 

print(nextMove(r,c,pr, pc)) 
+2

나는 solu 하지만 아직 해커 크랭크에 대해 배웠습니다. 고마워! :-) 파이썬이기 때문에 나는 그것을 보려고 노력할 것이다. – quapka

+0

공주의 위치가 입력이므로 왜 보이지 않습니다. 그들은 당신이 내가 이해 한 것에서 어떤 장애물 없이도 그리드에있는 공주에게 최단 경로를 가져주기를 원합니다. –

+0

프로그래밍에 대한 질문이 아니라 지시를 이해하는 것에 관한 것입니다. 응답 할 수있는 유일한 사람은 질문을 게시 한 사람입니다. 운 좋게도 그는 그렇게했습니다 - 토론 탭을 확인하십시오. – Leeor

답변

1

내가 잘못,하지만 당신은 그리드에서 'P'의 인덱스를 찾아 공주의 위치를 ​​찾을 수없는 경우에 저를 용서 , 입력으로 지정되지 않은 것 같습니다.

def find_princess(grid): 
    N = len(grid) 
    for i in range(grid): 
     for j in range(grid): 
      if grid[i][j] == 'P' 
      return i,j 
+0

가능합니다. 다음과 같이 입력된다 : [5] [2 (3)] [----] [----] [P - M-] [를 -----] [ -----] 각 중괄호 세트는 하나의 입력입니다. 내 코드가 작동하고 완전한 마크를 얻습니다. – MK3GTX

+0

위와 같이 그리드를 파싱하면 "Bot save princess - 2"문제에 대한 나의 해결책이 해결되어 문제의 일부인 공주의 위치에 대한 입력을 읽습니다. – user3684792