본문 바로가기
ALGORITHM/SW Expert Academy

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

by 안녕나는현서 2021. 12. 7.
728x90

📌 문제

https://swexpertacademy.com/main/main.do

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

📌 문제 접근 방법

  1. N을 4로 나눠서 cnt에 저장하고 그만큼 회전을 시켜서 숫자를 생성하였다.
  2. 생성한 숫자는 four_num함수를 사용하여 4개로 잘라서 total에 저장하였다.
  3. total에서 중복을 제거한 후 내림차순으로 정렬하여 K번째에 있는 수를 10진수로 변환하였다.

 

📌 코드

# SWEA 5658 보물상자 비밀번호
from collections import deque

def four_num(num):
    global total

    i = 0
    for _ in range(4):
        temp = ''
        for j in range(i, i+cnt):
            temp += num[j]
            
        total.append(temp)
        i += cnt


T = int(input())

for t in range(1, T+1):
    N, K = map(int, input().split())
    num = deque(input())

    cnt = N//4
    total = []

    for _ in range(cnt):
        four_num(num)
        num.append(num.popleft())
    
    total = list(set(total))
    total.sort(reverse=True)
    target = int(total[K-1], 16)

    print('#{} {}'.format(t, target))
728x90

댓글