728x90
- 접근 방법
- 정답 여부
접근 방법
1. queue 자료구조를 활용해서 회전마다 popleft를 횟수마다 해주고 다시 빼낸 것을 append하여 회전 때마다의 리스트를 구한다.
2. 그 후 list를 잘라서 해당 숫자를 join 해 문자열로 만들어서 set 자료구조에 넣어서 중복이 없도록 한다.
3. 해당 set을 리스트로 바꾸고 16진수를 10진수로 변경한다.
4. 내림차순으로 sort한 후, K번째 수를 빼낸다.
코드
from collections import deque
T = int(input())
for test_case in range(1, T+1):
N, K = map(int, input().split())
lst = list(input())
n_set = set()
count = N // 4
for i in range(count):
q = deque(lst)
for _ in range(i):
temp = q.popleft()
q.append(temp)
temp_list = list(q)
for i in range(0, len(temp_list), count):
n_set.add("".join(temp_list[i:i + count]))
n_list = list(n_set)
final_list = []
for i in n_list:
final_list.append(int(f'0x{i}', 16))
final_list.sort(reverse=True)
print(f'#{test_case} {final_list[K-1]}')
정답 여부
- 정답!!
- 16진수를 10진수로 변경하는 부분과 배열을 자르는 부분에서 잠시 헷갈렸다 ㅜㅜ
728x90
반응형
'Study > Algorithm' 카테고리의 다른 글
[백준 11660] 구간 합 구하기 5 (0) | 2024.08.21 |
---|---|
[baekjoon] 세탁소 사장 동혁(2720) (0) | 2024.05.31 |
[SWEA] 2001. 파리퇴치 (0) | 2024.05.18 |
[SWEA] 1954. 달팽이 숫자 (0) | 2024.05.17 |
[SWEA]1244. [S/W 문제해결 응용] 2일차 - 최대 상금 (python) (0) | 2024.05.17 |