728x90
반응형
문제
2,3,4,6을 입력 시
@@ * @@ = @@ * @@ 중 , @에 하나의 숫자를 넣어서
등호 기준 왼쪽, 오른쪽에 2,3,4,6을 한번씩만 넣어야 합니다!!
만약에 2,3,4,6 입력 시
23 * 64 = 32 * 46
24* 63 = 36 * 42 를 추출
방법
lst = [2,3,4,6]
def gen_case():
tmp = []
# [[0, 1], [0, 2], [0, 3], [1, 0], [1, 2], [1, 3]...]
for i in range(len(lst)):
for j in range(len(lst)):
if i != j:
tmp.append([i, j])
# [ [[0,1],[0,2]], [[0,1],[0,3], [[0,1],[0,4]]]...]
rtn = []
for i in range(len(tmp)):
for j in range(i+1, len(tmp)):
rtn.append([tmp[i], tmp[j]])
return rtn
# @@ * @@ = @@ * @@
case_lst = gen_case() # 모든 조건을 불러옴
for i in range(len(case_lst)): # 왼쪽 조건
for j in range(i+1,len(case_lst)): # 오른쪽 조건
if case_lst[i][0][0] != case_lst[i][1][0] and case_lst[j][0][0] != case_lst[j][1][0]: # 왼쪽조건에서 같은수가 없거나 오른쪽에서 같은수가 없는 경우만
a1 = case_lst[i][0][0] # 왼쪽 첫번째 수의 인덱스. 0,1,2,3 중에 하나
a2 = case_lst[i][0][1] # 왼쪽 두번째 수의 인덱스. 0,1,2,3 중에 하나
a3 = case_lst[i][1][0]
a4 = case_lst[i][1][1]
b1 = case_lst[j][0][0] # 오른쪽 첫번째 수의 인덱스. 0,1,2,3 중에 하나
b2 = case_lst[j][0][1] # 오른쪽 두번째 수의 인덱스. 0,1,2,3 중에 하나
b3 = case_lst[j][1][0]
b4 = case_lst[j][1][1]
# print(a1,a2,a3,a4,b1,b2,b3,b4)
na1 = lst[a1] # 왼쪽 첫번째 수 인덱스에 대한 lst=[2,3,4,6] 의 요소값
na2 = lst[a2] # 왼쪽 두번째 수 인덱스에 대한 lst=[2,3,4,6] 의 요소값
na3 = lst[a3]
na4 = lst[a4]
nb1 = lst[b1] # 오른쪽 첫번째 수 인덱스에 대한 lst=[2,3,4,6] 의 요소값
nb2 = lst[b2] # 오른쪽 두번째 수 인덱스에 대한 lst=[2,3,4,6] 의 요소값
nb3 = lst[b3]
nb4 = lst[b4]
# print(f"{na1}{na2} * {na3}{na4} ({(na1*10+na2)*(na3*10+na4)}) == {nb1}{nb2} * {nb3}{nb4} ({(nb1*10+nb2)*(nb3*10+nb4)})")
if (na1*10+na2)*(na3*10+na4) == (nb1*10+nb2)*(nb3*10+nb4): # 왼쪽 조건과 오늘쪽 조건이 같으면
print(f"True: {na1}{na2} * {na3}{na4} == {nb1}{nb2} * {nb3}{nb4}") # 조건 출력
728x90
반응형
'프로그램' 카테고리의 다른 글
[Rust] UI : 입력 받고 버튼 클릭시 Msg 보이기(native-windows-gui) (0) | 2023.05.27 |
---|---|
[파이썬] 문제 : 문자열에서 특정 문자들로 분리하기 (0) | 2023.05.26 |
[파이썬] 1차원 데이터의 CNN(Conv1D) 딥러닝 (0) | 2023.05.24 |
[C언어] 문자열 입력 받아 문자,숫자,기타 문자 개수 출력 (0) | 2023.05.23 |
[파이썬] 문제 : datascience Table 처리(nba데이터) (0) | 2023.05.22 |
댓글