8개니깐 상태 1개는 int나 long long 1개로 표현할 수 있지 않을까요?
1521번 - 랜덤 소트
8개니깐 상태 1개는 int나 long long 1개로 표현할 수 있지 않을까요?
8개니깐 0~7로 생각하면 숫자 하나는 3비트로 나타낼 수 있잖아요? 그러면 int 하나에 3비트씩 끊어서 담으면 8개 숫자를 3*8개의 비트를 써서 표현할 수 있지 않을까요
예를 들어 4 3 2 1 이면 2진수로 나타넀을때 011 010 001 000 이런식으로 숫자 하나당 3비트로 나타내면 int 하나로 상태를 표현할 수 있어요. 이걸 map에다가 넣으면 8! * 8byte밖에 안 필요해요
물론 이것저것 저장하면 저거에 몇배는 더 필요하긴 할거에요
댓글을 작성하려면 로그인해야 합니다.
iriszero 8년 전
map이 hash를 어떻게 하는지 몰라서 TLE날까봐 배열로 다 잡았는데
배열로 caching 할려면
16434824 * 8 byte 필요한데
메모리제한은
16777216 * 8 byte 라서 굉장히 빡빡하네요.
의도하신 건진 모르겠는데 프로그램을 어떻게 짜느냐에 따라서 2,739,136 Byte 정도는 넘어갈 수도 있지 않을까 싶네요.
5~10MB정도 여유를 두는 것도 고려해봄직합니다.