[BaekJoon] 백준 2659번 십자카드 문제

Updated:

2659번 : 십자카드 문제


주어진 카드의 십자수를 구한 뒤 모든 십자수 중 몇 번째로 작은 십자수인지 구하면 된다.

십자수를 구하는 방법은 여러가지가 있는데 나는 문자열을 잘라 만들었다.

총 네 가지 숫자를 만들 수 있는데 그 중 가장 작은 숫자를 십자수라고 하면 된다.

그리고 1111 로 되어있는 카드부터 9999 로 되어있는 카드까지 십자수를 구하면서

나의 십자수와 같을 때 까지 십자수가 몇 번 나왔는지 계산하면 된다.


def cal_clock_num(card):
	num = int(card)

	for idx in range(1, 4):
		tmp = int(card[idx:4] + card[:idx])
		if num > tmp:
			num = tmp

	return num


if __name__ == '__main__':
	data = ''.join(list(input().rsplit()))
	clock_num = cal_clock_num(data)

	cnt = 0
	for i in range(1111, 10000):
		i_card_clock_num = cal_clock_num(str(i))
		if i == i_card_clock_num:
			cnt += 1
			if i == clock_num:
				print(cnt)
				exit(0)



Categories:

Updated:

Leave a comment