본문 바로가기
문제 풀이/백준

[S5] 백준 26517 - 연속인가? ? (Python3)

by JJong | 쫑 2023. 1. 10.

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

 

26517번: 연속인가? ?

실수 $t$에 대하여, 함수 $f(x)$가 $x=t$에서 정의되어 있고, $\lim_{x \rightarrow t} f(x) = f(t)$인 경우 "$f(x)$는 $x=t$에서 연속이다"라고 한다. 함수 $f(x) = \begin{cases}ax+b & (x \leq k)\\ cx+d & (x > k)\end{cases}$가 주

www.acmicpc.net


해결방법

고등학교 수학 시간에 배웠던 개념을 잊지 않고 있어서 풀 수 있던 문제였다.  주어진 함수가 x=k에서 연속인지 판단하는 방법은 좌극한과 우극한이 같은지 확인하면 된다. 같다면 연속, 다르면 불연속.


코드

k = int(input())
a, b, c, d = list(map(int, input().split()))

r1 = a*k + b
r2 = c*k + d

if r1 == r2:
    print("Yes",r1)
else:
    print("No")

위 코드는 정석 풀이일 것이다. 그런데 이 문제의 특성상 약간의 기교를 살짝 부릴 수 있겠다 싶어 아래와 같은 코드로도 짜보았다.

k = int(input())
a, b, c, d = list(map(int, input().split()))
print(f"Yes {r}" if (r:=a*k + b)==c*k + d else "No")

코드 설명

  1. 주어진 함수가 x=k에서 연속인지 판정하는 코드를 짠 것이다.  r1은 x<=k에서의 f(x), r2는 x>k에서의 f(x)를 의미한다. 그리고 그 둘(r1, r2)이 같다면 연속한다는 의미이므로, 주어진 형식에 맞게 정답을 출력한다.
  2. 1과 마찬가지의 코드이다. 다른 점이라면 python의 삼항연산자와 바다코끼리 연산자(:=)를 사용했다는 점이다. 

 

댓글