Algorithm/Python

[swea 5658] 보물상자 비밀번호

🥭맹2 2021. 4. 23. 14:10

1. 문제

swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRUN9KfZ8DFAUo

 

SW Expert Academy

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

swexpertacademy.com

2. 접근 방법

리스트를 회전할 수 있다면 쉽게 풀이할 수 있습니다.

아 그리고 16진수를 10진수로 바꾸는 방법도 알아야함

int(16진수로쓰여진숫자, 16)하면 됨

이와 동일하게 8진수, 2진수도 int(8진수로쓰여진숫자, 2)하면 됨

 

10진수를 2진수, 8진수, 16진수로 바꾸려면

각각 bin(숫자), oct(숫자), hex(숫자) 하면 됨

3. 코드

python3.5

T = int(input())
for tc in range(1, T+1):
    N, K = map(int, input().split())
    lst = list(input())
    words = []
    word_len = N//4
    for i in range(N):
        for j in range(0, N, word_len):
            word = ''.join(lst[j:j+word_len])
            word_to_num = int(word, 16)
            if word_to_num not in words:
                words.append(word_to_num)
        a = lst.pop()
        lst.insert(0, a)
    print('#{} {}'.format(tc, sorted(words, reverse=True)[K-1]))

4. 마치며

오랜만에 swea를 풀어서 format에 맞춰 출력하는게 너무 낯서네여

 

참고로 저 문제 풀 때 처음에 4번만 돌리는줄 알고 i의 영역을 4로 만들었다가 tc가 왜 안되지 싶었습니다.ㅎ ..

제대로 읽쟈

'Algorithm > Python' 카테고리의 다른 글

[swea 5650] 핀볼 게임  (0) 2021.04.24
[swea 5656] 벽돌깨기  (0) 2021.04.23
[백준 1655] 가운데를 말해요  (0) 2021.04.23
[백준 11286] 절댓값 힙  (0) 2021.04.23
[백준 11279] 최대 힙  (0) 2021.04.23