본문 바로가기

Problem Solving/swea

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

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

 

SW Expert Academy

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

swexpertacademy.com

# 18분 소요

 

삼성 SW역량테스트 모의 문제 중 가장 쉬운 난이도의 문제이다.

  • 특별한 알고리즘 X
  • 리스트 슬라이싱을 이용해 회전 처리
  • 나온 값에 16진수 처리를 하면서 중복없이 리스트에 담아줌
  • 내림차순 정렬 후 K번째 수 출력

 

파이썬 코드는 다음과 같다.


T = int(input())
for tc in range(T):
    N, K = map(int, input().split())
    A = list(input())
    turn = N//4
    result = 0
    L = []
    for _ in range(turn):
        for i in range(0, N, turn):
            temp = int(''.join(A[i:i+turn]), 16)
            if temp not in L:
                L.append(temp)
        A = [A[-1]] + A[:-1]
    print("#{} {}".format(tc+1, sorted(L, reverse=True)[K-1]))

고찰 : 쉬운 문제는 빠르게 파악하여 코드로 치고 넘어가자.