Skip to content

Conversation

@tabss2003
Copy link
Collaborator

풀이

  • [시계 방향]
  • 보물상자에 적힌 숫자로 만들 수 있는 모든 수 중 k번쨰로 큰 수 => 10진수로 만든 수
  • -> 서로 다른 회전 횟수에서 동일한 수가 중복으로 생성할 수 있으니, 크기 순서를 셀 떄 같은 수를 중복으로 세지 않도록 주의
  • 저는 여기서 포인트는 같은 수를 중복으로 세지 않는 부분이 포인트라고 생각합니다.
  • StringBuilder를 이용해 N/4로 쪼갠 값들을 result 리스트에 넣었습니다.
  • 한 변에 들어가는 값의 개수 : N /4
  • 회전 N/4 번 = 회전 0번의 상태와 똑같아짐

리뷰 요청 사항

  • 더 많은 리뷰를 위해 자세히 적어주세요

느낀점

  • 자동완성을 하다보면 여러 함수들이 있어 살펴보다가 StringBuilder의 setLength()을 통해 StringBuilder 를 삭제하지 않고 손쉽게 초기화하는 방법을 알았고, Integer.parseInt 로 바로 10진수로 바꿀 수 있어 손쉽게 할 수 있었던 거 같다.

@0takkk
Copy link
Collaborator

0takkk commented Oct 3, 2022

if(!result.contains(sb.toString())) {
result.add(sb.toString());
}

List의 contains()는 O(n)의 시간복잡도를 가지지만, Set의 contains()는 O(1)의 시간복잡도를 가집니다.
중복체크 용도로는 set이 조금 더 효율적일 것 같습니다.

@ManduTheCat
Copy link
Owner

ManduTheCat commented Oct 4, 2022

Collections.sort(result, Collections.reverseOrder());

이렇게 하면 거꾸로 정렬이 가능하군요 하나 배웠습니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants