본문 바로가기

■ 알고리즘 문제 풀이/SWEA

[SWEA] 5658. 보물상자 비밀번호

▶문제설명



▶Hint


브루트포스 & 시뮬레이션 문제이다.


사각형의 각 변에 적힌 16진수들을 시계방향으로 회전시키기 위해서 Queue 자료구조를 사용하는 것이 적합하다.

하지만 Queue는 저장된 데이터에 인덱스로 접근하는 것이 불가능하다.

그래서 Deque 자료구조를 활용한다.


1. 16진수들을 Deque에 모두 push_back한다.


2. 4개의 변에 있는 16진수를 각각 10진수로 변환하여 list에 저장한다.

[변환 방법]

16진수

10진수

 AF2

 16^2*10 + 16^1*15 + 16^0*2 

 2CAE

 16^3*2  + 16^2*12 + 16^1*10 + 16^0*14

 573AB

 16^4*5  + 16^3*7   + 16^2*3   + 16^1*10  + 16^0*11


3. 시계방향으로 1회 회전시킨다.

[시계방향으로 1회 회전시키는 방법]

: Deque의 front에서 데이터를 pop해서 push_back한다.


4. 2~3을 N/4번 반복한다. (하나의 변에 해당하는 16진수의 개수)


5. list를 내림차순으로 정렬한다.


6. list의 unique 함수를 통해 중복된 숫자를 제거한다.


7. list의 K-1번째에 저장된 값을 정답으로 출력한다.



▶Solution


'■ 알고리즘 문제 풀이 > SWEA' 카테고리의 다른 글

[SWEA-D3] 1244. 최대 상금  (7) 2019.04.09
[SWEA] 2112. 보호 필름  (0) 2019.03.15
[SWEA] 1868. 파핑파핑 지뢰찾기  (0) 2019.03.15
[SWEA] 5644. 무선 충전  (0) 2019.03.06
[SWEA] 4014. 활주로 건설  (0) 2019.03.05