코린이 탈출기
[모의 SW 역량테스트][Python] 보물상자 비밀번호 본문
코드 유목민...
여러가지 써보는 중이다..
얼마전 카카오 코테에서 파이썬으로 했으면 고생고생을 안해도 될 문제가 있었어서 파이썬에 꽂혔당 ㅎ
아직은 익숙하지 않아서 문법 같은 건 그때그때 찾아보면서 하고있다
<문제 풀이 Logic>
1. 보물상자의 면이 4개이므로 전체 숫자를 4로 나눠서 rotate_num을 구한다.
2. 4개의 영역으로 숫자들을 잘라서 splitTreasure에 저장한다. -> rotate. 한 칸씩 시계방향으로 이동
3. 2번을 (rotate_num-1)만큼 반복
4. 중복 제거를 해야하므로 splitTreasure에 set을 취한 후 문제에서 원하는 번째의 원소를 출력하면 된다.
파이썬 내부에 16진수를 10진수로 바꾸거나, 중복 제거 등 기능이 대부분 있어서 코드를 훨씬 단축시킬 수 있었다.
이러한 함수나 기능을 익히면 더 쓰기 편해질 것 같다 !!!
-전체 코드-
def rotate(old_str):
new_str= ""
new_str += old_str[len(old_str)-1]
for i in range(0, len(old_str)-1):
new_str += old_str[i]
return new_str
T = int(input())
# 여러개의 테스트 케이스가 주어지므로, 각각을 처리합니다.
for test_case in range(1, T + 1):
N, K = map(int, input().split())
TreasureStr = input()
answerList = []
splitTreasure = []
rotate_num = int(N/4)
# print(TreasureStr)
for r in range(0, rotate_num):
if(r != 0):
TreasureStr = rotate(TreasureStr)
for i in range(0, N-(rotate_num-1), rotate_num):
splitTreasure.append(TreasureStr[i:i+rotate_num])
# print(splitTreasure)
resultArr = list(set(splitTreasure))
resultArr.sort(reverse=True)
# print(resultArr)
result = int(resultArr[K-1], 16)
print("#" + str(test_case) + " " + str(result))
'문제 풀이 > Simulation' 카테고리의 다른 글
[모의 SW 역량테스트][Python] 벽돌 깨기 (0) | 2020.09.18 |
---|---|
[백준 2636][Python] 치즈 (0) | 2020.09.18 |
[백준 16235] 나무 재테크 (0) | 2020.08.10 |
[백준 13460] 구슬 탈출 2 (0) | 2020.08.05 |
[백준 17779] 게리맨더링 2 (0) | 2020.08.02 |