문제 링크

문제 요약

이 문제는 피겨 스케이팅의 토(Toe) 계열 점프 중 토룹(T), 플립(F), 러츠(Lz) 세 가지를 식별하는 문제입니다. 선수 진행 방향과 2x2 격자판에 남은 빙판 자취가 주어지면, 해당 자취가 어떤 토 계열 점프에 해당하는지 출력해야 합니다.

문제에서는 남쪽(S)으로 진행할 때의 각 점프 자취 패턴을 예시로 제공합니다. 만약 주어진 자취가 어떤 토 점프에도 해당하지 않으면 ”?”를 출력합니다.

풀이

이 문제의 핵심은 입력으로 주어지는 진행 방향에 관계없이 자취 패턴을 통일된 기준으로 맞추는 것입니다. 문제에서 남쪽(S)으로 진행할 때의 패턴이 주어져 있으므로, 입력된 자취를 마치 남쪽으로 진행할 때의 자취인 것처럼 변환하여 비교하면 쉽게 해결할 수 있습니다.

참고 내용 → 정사각행렬 90도씩 회전시키기

정답 코드

def rotate90(l):
  return [''.join(x) for x in zip(*l[::-1])]
 
def rotate(l, count):
  for _ in range(count):
    l = rotate90(l)
  return l
 
def rotate_count(c):
  s = 'SENW'
  return s.index(c)
 
 
def solve():
  direction = input()
  l = [input() for _ in range(2)]
  l = rotate(l, rotate_count(direction))
 
  if l[0] =='.O' and l[1] == 'P.':
    return 'T' # 토룹
 
  if l[0] == 'I.' and l[1] == '.P':
    return 'F' # 플립
  
  if l[0] == 'O.' and l[1] == '.P':
    return 'Lz' # 러츠
 
  return '?' # 어떤 점프도 아닌 경우
 
 
if __name__ == "__main__":
  tc = 1
  for t in range(1, tc+1):
    ret = solve()
    print(ret)
 

연관 페이지

참고 문헌 / 사이트