(알고리즘) SWEA 5658 python 파이썬

원종식·2022년 7월 6일

SSAFY 8기에 합격했다. 학사 규칙을 둘러보니 1학기 내에 삼성 소프트웨어 역량테스트 A는 최소 따야한다.
그런김에 SWEA 모의 역량 테스트를 풀어봤다.

문제

문제 복제를 하지 말라해서 링크만!
https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRUN9KfZ8DFAUo

풀이

풀이는 매우 간단하다. 받은 문자열에서 만들 수 있는 모든 수를 만들어서 num list에 넣고 (물론 이때 중복제거는 해야한다) sort(reverse=True) 돌려서 K-1번째 수 출력하면된다.

코드

T=int(input())
digit=['0','1','2','3','4','5','6','7','8','9']
for test in range(1,T+1):
    N,K=map(int,input().split(' '))
    get=input()
    nums=[]
    for i in range(N):
        t=0# 해당 위치에서 만들 수 있는 수를 넣을 변수
        for j in range(N//4):
            if(get[(i+j)%N] in digit):
                t+=int(get[(i+j)%N])*16**((N//4)-1-j)
            else:
                t+=(ord(get[(i+j)%N])-ord('A')+10)*16**((N//4)-1-j)
        if t not in nums:# 중복체크
            nums.append(t)
    nums.sort(reverse=True)
    print(f"#{test} {nums[K-1]}")

후기

이렇게만 나오면 참 쉬울텐데... 이게 엄청 쉬운거일듯... 흐으 노력하자 종식아!

profile
여행을 좋아하고 술을 좋아하는 주행가 종시기의 개발 공간

0개의 댓글