문제 이름: 십자카드 문제(https://www.acmicpc.net/problem/2659)
문제 유형: 구현, 브루트포스 알고리즘, 정렬
난이도: S3
언어: Python
문제 탐색하기
시간 복잡도
코드 설계하기
시도 회차 수정사항
정답 코드
import sys
def solve(r):
Sigyesu = list(map(int, str(r)))
# print(Sigyesu)
rotation = [0, 1, 2, 3] * 4
# print(rotation)
for i in range(4):
update_min = int(Sigyesu[rotation[i+1]]*1000 \
+ Sigyesu[rotation[i+2]]*100 \
+ Sigyesu[rotation[i+3]]*10 \
+ Sigyesu[rotation[i]])
if r > update_min:
r = update_min
return r
# 입력
numbers = int(''.join(sys.stdin.readline().rstrip().split()))
# print(numbers)
result = solve(numbers)
# print(result)
cnt = 0
for i in range(1111, result+1): # 1111부터 1122까지
check = list(map(int, str(i)))
# print(check)
if 0 not in check:
if solve(i) == i:
cnt += 1
print(cnt)