개발자 톡
연습문제 톡
[21년 재직자 대회 예선] 전광판
테스트케이스 3번째부터 오답이라고 뜨는데 반례 좀 알 수 있을까요?
- 등록일
- 2024-01-30 23:00:24
- 조회수
- 259
- 작성자
- qhsl99
import sys t = int(sys.stdin.readline().rstrip()) # 전광판 숫자 0 ~ 9까지 각각 불 들어와있는 칸(숫자) 저장 num = [{1, 2, 3, 4, 5, 6}, # 0 {5, 6}, # 1 {1, 3, 4, 6, 7}, # 2 {1, 4, 5, 6, 7}, # 3 {2, 5, 6, 7}, # 4 {1, 2, 4, 5, 7}, # 5 {1, 2, 3, 4, 5 ,7}, # 6 {1, 2, 5, 6}, # 7 {1, 2, 3, 4, 5, 6, 7}, # 8 {1, 2, 4, 5, 6, 7}] # 9 input_value = [] for i in range(t): a, b = sys.stdin.readline().rstrip().split() # 입력받은 문자열을 반대로 뒤집어서 저장(두 문자열의 길이가 다른것을 보완) input_value.append((a[::-1], b[::-1])) for a, b in input_value: count = 0 n = min(len(a), len(b)) # 두 문자열 중 길이가 짧은 것의 길이만큼 반복하며 개수 세기 for i in range(n): # 두 집합의 합집합에서 교집합을 제거한 후 그 개수를 세면 변경된 수 파악 가능 count += len(num[int(a[i])] | num[int(b[i])]) - len(num[int(a[i])] & num[int(b[i])]) # 두 문자열의 길이가 같았다면 더 볼 필요 없이 출력하고 넘어감 if len(a) == len(b): print(count) continue # 다르다면 문자열 길이가 더 길었던 것의 나머지 자리수 확인 for i in range(n, n + abs(len(a) - len(b))): if int(a) > int(b): count += len(num[int(a[i])]) else: count += len(num[int(b[i])]) print(count)
#[21년_재직자_대회_예선]_전광판
#python