[editorial] 2008년 ACM ICPC 서울대회 인터넷 예선 F번 Rubik's Cube

  • astein
    astein
    • Problem Statement 루빅스 큐브(Rubik’s Cube)는 조각가이자 건축학 교수인 에르노 루빅(Ernő Rubik)이 개발한 퍼즐로, 27개의 작은 정육면체들로 이루어진 큰 정육면체로 이루어져 있으며 작은 정육면체의 각 면은 정해진 6개의 색깔이 각각 칠해져 있다. 각 방향으로 돌아가게끔 만들어져 있어, 흩어진 각 면의 색깔을 같은 색깔로 맞추는 퍼즐이다. 임의의 두 루빅스 큐브의 상태가 주어졌을 때, 이 상태가 같은 큐브를 다른 방향에서 본 것인지 판단하는 프로그램을 작성하시오.
    • Analysis 코딩을 해서 채점을 해 볼 수 있는 상황이 아니기 떄문에, 간단하게 말로 분석을 쓰겠습니다. 어떤 하나의 큐브 상태가 있다면, 회전연산을 통해 전체 24가지의 경우가 존재합니다. 6면중 하나의 면을 바닥면으로 두고, 이를 4방향으로 회전할 수 있기 때문이지요. 각각의 케이스에서 큐브 상태를 구할 수 있다면 이 문제는 간단하게 해결할 수 있습니다. 다만, 3차원이고 방향이 헷갈리기 때문에 주의해야 합니다.
      [이 글은 과거 홈페이지에서 이전된 글입니다. 원문보기]

    16년 전
7개의 댓글이 있습니다.
  • josh
    josh

    회전 연산을 통해 24가지의 경우가 존재하는 것은 매우 쉽게 알 수 있다. 하지만 구현하기는 그렇게 만만치 않을 문제.
    실제로 회전연산을 구현하는 쪽이 나을지, 혹은 동일한 면을 찾은 다음 이웃된 면들을 비교하는 방식이 나을지는 고민해봐야 할 부분인듯 함.
    경험적으로는? 후자쪽이 구현에 걸리는 시간과 코드길이가 짧았음.


    16년 전 link
  • astein
    astein

    저도 제출해보고 싶어요 ㅠ.ㅠ


    16년 전 link
  • JongMan
    JongMan

    3차원인 덕분에 회전하는 것 구현하기가 어려운데.. 종이라도 한장 찢어서 옆에다 직접 놓고 그려 보면 좀 쉽겠지요. ^^;


    16년 전 link
  • 정상인
    정상인

    저희 팀은 실제로 대회중에 연습장 찢어서 직접 그려보면서 구현했습니다.


    16년 전 link
  • josh
    josh

    tanso가 아직 돌아가면 그쪽에 의뢰하면 됐을텐데...


    16년 전 link
  • Being
    Being

    탄소는 그만...불에.....ㅠ.ㅠ..하드가........


    16년 전 link
  • JongMan
    JongMan

    그렇지 않아도 한번 여쭤보고 싶었는데요, 아직 걸음마 단계지만 알고스팟 저지가 만들어지고 있습니다. (링크, 다른 링크, 또다른 링크)가능하면 올해 안에 오픈하는 것을 목표로 하고 있는데요. 그렇다면 과거 서울 대회 문제들을 가져다가 (데이터는 저희가 자체 생성해서) 채점할 수 있도록 해도 문제가 되지 않을까요..?


    16년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.