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

원종식·2022년 7월 6일
0
post-custom-banner

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
여행을 좋아하고 술을 좋아하는 주행가 종시기의 개발 공간
post-custom-banner

0개의 댓글