본문 바로가기
Develop/백준 (Cpp)

[백준] 17945번 : 통학의 신 (C++)

by Tarra 2024. 1. 3.

17945번 : 통학의 신


문제)

태현이는 매일 한양대로 통학하는 학생이다. 태현이가 집에서 나와서부터 건물까지 도착하는 데는 약 1시간 40분이 걸린다. 태현이는 올해부로 3년 째 통학하고 있다. 오늘 태현이는 학교를 가기 위해 1시간 40분 전에 출발했으나, 열차가 지연되어 아직 왕십리까지 오지도 못했다. 평소에도 통학이 지긋지긋했지만 오늘 태현이는 화가 머리 끝까지 났다. 이게 과연 받아들이고 말아야 할 일인가? 하루에 길바닥에 4시간을 버리다니! 매번 학교까지 오는데 에너지를 다 써버려서 수업을 들을 힘도 없다.

 

열차는 왜 매번 지연되고, 지하철엔 왜 이렇게 사람이 터지는가! 아침 통학길마다 태현이는 평생 사람과 이렇게 가까이 붙어본 적이 없다고 느낀다. 열차를 조금만 증설해 준다면 태현이의 통학길이 조금 편해질 텐데… 하지만 피곤에 쩐 태현이가 할 수 있는 것은 그렇게 많지 않았다.

 

너무 화가 난 태현이는 통학 동아리를 만들기로 했다. 매일 모여서 통학이 얼마나 힘든지에 대해 이야기하고 서로 위로를 해주는 동아리이다. 태현이에게 이 동아리는 큰 힘이 되었고, 힘든 통학길마다 서로를 격려해주며 하나의 힘이 되어나갔다.

 

태현이를 비롯한 통학 동아리 회원들을 가엾이 여긴 통학의 신은 자비를 베풀어 통학 동아리 사람 중, 단 한 명에게 학교를 왔다갔다 할 때 순간이동 할 수 있는 권한을 주어 통학의 고통에서 벗어나게 하려한다. 그는 이 행운을 자신이 만든 테스트를 통과한 회원들에게 하사하려 한다. 

 

사실 통학의 신이 만든 테스트는 아니다. 통학의 신은 요즘 학습지를 풀고 있는데, 수학엔 영 젬병이라 힘들어 한다. 간단한 이차방정식의 근을 구하고 싶은데, 제대로 풀리지 않아 괜히 사람들에게 문제를 내서 학습지를 안 풀고 학습지 선생님께 칭찬을 받으려는 것이다.

태현이는 통학 동아리 회장이지만 이 엄청난 행운을 통해 통학 동아리에서 나가고 싶어한다. 태현이를 도와주자!

 

 

 

입력 :

x^2  + 2Ax + B = 0 의 두 계수 A, B가 주어진다. A, B는 정수이며, 이 방정식의 근은 항상 정수이다. (-1000 ≤ A, B ≤ 1000)

 

 

 

출력 :

첫 번째 줄에 방정식의 근들을 모두 공백으로 분리해 오름차순으로 출력한다. 중근일 경우 하나만 출력한다.

 

 

 

 

 

풀이)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 17945. 통학의 신
#include <iostream>
#include <vector>
 
using namespace std;
 
int main()
{
    int a, b;
    cin >> a >> b;
 
    vector<int> answer;
 
    for (int i = -1000; i <= 1000; i++)
    {
        int result = (i * i) + (2 * a * i) + b;
        if (result == 0) answer.push_back(i);
    }
 
    for (int ele : answer) cout << ele << " ";
 
    return 0;
}
 
cs

출처 : https://www.acmicpc.net/problem/17945 

 

17945번: 통학의 신

x2  + 2Ax + B = 0 의 두 계수 A, B가 주어진다. A, B는 정수이며, 이 방정식의 근은 항상 정수이다. (-1000 ≤ A, B ≤ 1000)

www.acmicpc.net