거울에 레이저 쏘기2

hawlang·2023년 11월 2일

TIL

목록 보기
1/6

코드트리: 거울에 레이저 쏘기2


거울에 레이저를 쏴서 레이저가 몇 번 반사되는지 알아본다.

문제 접근 방법

  1. 레이저 위치를 토대로 레이저가 발사하는 방향과 처음으로 레이저를 맞는 거울의 위치를 구한다.
  2. 첫 거울을 시작으로 레이저를 반사하면서 cnt를 증가시킨다.
  3. 2차원 배열의 크기를 벗어나면 2번을 종료하고, cnt를 증가시킨다.

왜 풀지 못했나?

2차원 배열의 문자( \, / )에 따른 방향 인덱스를 변화하는 로직은 생각했다.
하지만 K를 토대로 시작점과 방향을 구하는 로직을 작성하지 못했다.

회고

문제 접근 방법에서 3번을 생각하지 못해서 아쉽다.

알게된 점

  1. dx, dy를 사용할 때, 원소의 위치를 문제에 맞게 세팅한다.
  2. 방향 인덱스를 구할 때 if-else문으로 이용하면 코드가 길어져서 가독성이 떨어진다. 대신 bit 연산을 사용하면 한 줄의 코드로 index를 구할 수 있다.
profile
기록

0개의 댓글