728x90
반응형
https://www.acmicpc.net/problem/2659
2659번: 십자카드 문제
입력은 한 줄로 이루어지며, 이 한 줄은 카드의 네 모서리에 씌여있는 1 이상 9 이하의 숫자 4개가 시계 방향으로 입력된다. 각 숫자 사이에는 빈칸이 하나 있다.
www.acmicpc.net
문제 해결
- 주어진 입력값을 가지고 시계수를 구하는 함수를 만든다.
- 그 방법은 맨 앞의 숫자를 맨 뒤로 옮겨가며 가장 최솟값이 나오는 수를 구하면 된다.
- 1111은 가장 작은 시계수인 것은 명백하다.
- x를 입력값을 십자모형의 카드에 넣어 얻은 시계수라고 하면
- 1111부터 x까지 시계수의 개수를 구하면 되는 문제이다.
CODE
import sys
input = sys.stdin.readline
def clock_num(n):
min_val = int(''.join(map(str,n)))
for i in range(1,4):
tmp = int(''.join(map(str,n[i:]+n[:i])))
if min_val > tmp:
min_val = tmp
return min_val
if __name__=='__main__':
nums = list(map(int, input().split()))
clk_num = clock_num(nums)
cnt = 1 #자기자신(clk_num)
for i in range(1111,clk_num):
if '0' not in list(str(i)) and i== clock_num(list(map(int,str(i)))): # 0이 안에 들어가면 안되고 i가 시계수여야 한다.
cnt += 1
print(cnt)
728x90
반응형
'알고리즘 > [python] 백준 BOJ' 카테고리의 다른 글
[python] 백준 28278 스택 2 (0) | 2023.11.04 |
---|---|
[python] 백준 12851 숨박꼭질 2 (1) | 2023.11.01 |
[python] 백준 14923 미로 탈출 (0) | 2023.10.14 |
[python] 백준 17835 면접보는 승범이네 (0) | 2023.09.29 |
[python] 백준 2533 사회망 서비스(SNS) (0) | 2023.09.27 |
댓글