본문 바로가기

Algorithm/Sorting

(C++) - 백준(BOJ) 13580 : Andando no tempo

반응형

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

 

13580번: Andando no tempo

Imagine que você tenha uma máquina do tempo que pode ser usada no máximo três vezes, e a cada uso da máquina você pode escolher voltar para o passado ou ir para o futuro. A máquina possui três créditos fixos; cada crédito representa uma certa qua

www.acmicpc.net

정렬 후 if문을 사용해보는 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

세 credit을 입력할 일차원 배열 a를 선언 후 입력해줍니다.

 

📔 풀이과정

 1. a의 credit들을 오름차순으로 정렬해줍니다.

 2. 다시 돌아오기 위해서는 두 수가 같으면 됩니다. 하나의 수는 어떤 두 수의 합으로도 표현되므로 3가지의 경우를 봐주면 됩니다.

  2-1. a[0] == a[1]

        3 3 4인 경우 돌아올 수 있으므로 이에 해당합니다.

  2-2. a[1] == a[2]

       3 4 4인 경우가 이에 해당합니다.

  2-3. a[0] + a[1] == a[2]

       1 2 3인 경우가 이에 해당합니다. 1, 2각각 년 수 만큼 미래로 간 뒤 3년 후 과거로 돌아오면 현재로 올 수 있습니다.

📔 정답출력

2번 조건들에 해당하는 경우 S를 아닌경우 N을 출력해줍니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;
int a[3];
int main(){
    for(int i = 0; i < 3; i++) cin >> a[i];
    sort(a, a + 3);
    if(a[0] == a[1] || a[1] == a[2] || a[0] + a[1] == a[2]) cout << "S";
    else cout << "N";
}