[수업]Spin And Slide

문제

screen captures

image-20230106210141300

image-20230106210112350


풀이

처음에 그림1의 상태를 2차원 배열로 입력 받고, 90도 회전아래로 땅꺼짐 실시한다.

90도 회전 - 예외 발생하지 않게, 새로운 2차원 배열에 2중 for문으로 넣어줄 것(아래 7x7 예시)
x=1, y=6 => x=0, y=1
x=2, y=6 => x=0, y=2
x=2, y=5 => x=1, y=2
x=2, y=4 => x=2, y=2
x=2, y=3 => x=3, y=2
즉, y=x이고 x=(N-1)-y 로 자리 바꿈 해주면 된다는걸 알 수 있다.

아래로 땅꺼짐 - col을 맨 끝에서부터 접근, row는 N-2(N-1은 필요X)부터 접근하는 2중 for문을 작성
즉, 맨 오른쪽 아래 접근 후 점점 위로 접근해서 배열 요소 확인하는 방식

  • 요소를 확인하다가 '.' 이 아닐 때(=문자일때) 땅꺼짐 위해 그 아래 행들만 for문으로 전부 확인!
    • 이때 아래 행이 '.' 이면? 맨마지막 행일때만 땅꺼짐을 위해 위에서 구한 문자로 switch
      => 맨마지막 행 아닐때는 그냥 continue 해야한다.
    • 만약 아래 행이 '.'이 아닌 문자라면? 해당 문자의 바로 전 행에다가 위에서 구한 문자로 switch
      • 그러나 그 자리가 위에서 구한 문자와 동일한 경우는 무시해줘야 한다.
      • 그리고 해당 for문은 break로 마무리 한다.

댓글남기기