a,b,c,d,e,f=map(int,input().split())
y=int((d/a*c-f)/(d/a*b-e))
x=int((c-b*y)/a)
print(x,y)
첫번째 식의 양변에 d/a를 곱하면
d*x+d/a*b*y=d/a*c
d*x+e*y=f
----------------------빼기
d/a*b*y-e*y=d/a*c-f,
(d/a*b-e)*y=d/a*c-f,
-> y=(d/a*c-f)/(d/a*b-e)
이런식으로 진짜 연립방정식 풀듯이 풀었음
실행해보니 맞게 나오길래 제출했는데 백준에서는 틀렸다그러네
왜지? 열받네
(x, y)값이 여러개 나올 수 있으니 그런건가 생각도 해봤는데 음
왜일까
왜일까요
.
.
..
좀 더 생각해봐야겠음.
근데 난 이렇게 말고 진짜 미지수를 직접 찾을 수 있는 그런 방법이 있지 않을까 생각함
다른 분들 코드 찾아보니 있더라
이중 for-loop을 써서 x, y의 모든 범위를 돌아가며 찾는 방법이었음
a,b,c,d,e,f=map(int,input().split())
for x in range(-999, 1000):
for y in range(-999,1000):
if (a*x)+(b*y)==c and (d*x)+(e*y)==f:
print(x,y)
이렇게 하니 맞았음
근데 아무리 봐도 처음 방법대로 해도 될 것 같단 말이지
또 다른 분 풀이를 보았음
가감법을 이용하신.
a,b,c,d,e,f=map(int,input().split())
x=(c*e-b*f)//(a*e-b*d)
y=(c*d-a*f)//(b*d-a*e)
print(x,y)
이 방법이 for-loop을 저리 많이 도는 것보다 훨씬 좋아보인단 말이지
실제로 돌려보니 복잡도도 줄어듦
근데 내 방법도 되는 거 아냐 ..?! 계속 의문이 드는..
혹시몰라서
a,b,c,d,e,f=map(int,input().split())
y=(d//a*c-f)//(d//a*b-e)
x=(c-b*y)//a
print(x,y)
이렇게도 해봤는데 틀렸대
뭐냐고~
'Back-end > 백준(python)' 카테고리의 다른 글
[백준/python] 25305 커트라인: sort, sorted 차이 (0) | 2023.10.27 |
---|---|
★[백준/python] 1018 체스판 다시 칠하기: 브루트포스(전체탐색)/ (0) | 2023.10.27 |
[백준/python] 2231 분해합: 자릿수 덧셈 (sum, map 함수 사용) (0) | 2023.10.26 |
[백준/python] 2798 블랙잭: 3중 for-loop/ itertools 모듈과 조합 (0) | 2023.10.26 |
[백준/python] 24313 알고리즘수업-점근적표기1: 빅오 조건 (1) | 2023.10.26 |