1. 문제
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRUN9KfZ8DFAUo
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 |