728x90
https://www.acmicpc.net/problem/2659
2659번: 십자카드 문제
입력은 한 줄로 이루어지며, 이 한 줄은 카드의 네 모서리에 씌여있는 1 이상 9 이하의 숫자 4개가 시계 방향으로 입력된다. 각 숫자 사이에는 빈칸이 하나 있다.
www.acmicpc.net
따로 핵심 아이디어는 없었고 구현만 하면 풀 수 있는 문제였습니다.
다만 몇 번째인지 구할 때 십자수가 아닌 수를 주의하면 쉽게 풀 수 있습니다.
def solution(card):
clock_num = find_min(card)
return count_min(clock_num)
# 시계수 찾기
def find_min(card):
min_card = int(card)
# 카드 돌리면서 최솟값 찾기
for _ in range(3):
card = card[1:] + card[:1]
if min_card > int(card):
min_card = int(card)
return min_card
# 시계수 순서 찾기
def count_min(clock_num):
cnt = 1
for i in range(1, 10):
for j in range(1, 10):
for k in range(1, 10):
for l in range(1, 10):
temp_num = f'{i}{j}{k}{l}'
if temp_num == str(clock_num):
return cnt
if str(find_min(temp_num)) == temp_num:
cnt += 1
return cnt
card = ''.join(input().split())
print(solution(card))
728x90
'Coding Test > BaekJoon_Python' 카테고리의 다른 글
백준 5014 <스타트링크> Python (0) | 2023.10.26 |
---|---|
백준 2644 <촌수계산> Python (0) | 2023.10.26 |
백준 12865 <평범한 배낭> Python (0) | 2023.10.25 |
백준 2668 <숫자고르기> Python (0) | 2023.10.25 |
백준 1655 <가운데를 말해요> Python (0) | 2023.10.25 |