본문 바로가기

Algorithm/Python

[Algorithm] 백준 19532번 : 수학은 비대면강의입니다

문제

https://www.acmicpc.net/problem/19532

 

19532번: 수학은 비대면강의입니다

정수 $a$, $b$, $c$, $d$, $e$, $f$가 공백으로 구분되어 차례대로 주어진다. ($-999 \leq a,b,c,d,e,f \leq 999$) 문제에서 언급한 방정식을 만족하는 $\left(x,y\right)$가 유일하게 존재하고, 이 때 $x$와 $y$가 각각 $-

www.acmicpc.net

 

 

 

처음 풀이 코드 (Numpy 라이브러리 이용)

import numpy as np

a, b, c, d, e, f = map(int, input().split())

A = np.array([[a,b],[d,e]])
B = np.array([c,f])
C = np.linalg.solve(A,B)

for i in range(len(C)):
  to_int = int(C[i])
  print(to_int, end=' ')

처음에 Numpy 라이브러리를 이용해서 풀었는데 백준은 numpy 와 같은 파이썬의 외부라이브러리를 적용해주지 않아 런타임에러가 떴다.. ㅋㅎ

 

하긴 이렇게 쉽게 풀릴리가 없지..

 

 

정답 풀이 코드 ( For 문 )

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)
      break

에 ㅋ 

이렇게 했는데 풀리네..? numpy 라이브러리 사용하는 것보다 쉽게 생각할 수 있었어!

 


Reference

  • 백준 19532