[백준 BOJ] 13866번 팀 나누기 (C++/cpp)
2022. 10. 4. 14:11ㆍPS (Program Solving)/BOJ (백준)
문제 설명
https://www.acmicpc.net/problem/13866
접근 방법 - 사칙연산의 기본 문제
백준의 13866번 문제는 사칙연산에 있어 기초적인 연산으로 해결해야 하는 문제이다.
해당 문제는, 4명을 두 팀으로 나누었을 때 팀 간의 최소 격차를 연산하여 출력해야 하는 문제이다.
필자는 스킬 레벨이 가장 낮은 사람과 가장 높은 사람이 한 팀을 이루고 나머지 2명이 한 팀을 이루는 경우가 두 팀 간의 격차가 가장 작은 경우일 것이라 생각하였다.
입력값 상에서 이미 정렬이 되어있기 때문에 사칙연산에 대한 코드만 잘 작성하면 쉽게 해결할 수 있는 문제일 것이다.
혹여나 해당 문제를 해결하는 데에 어려움을 겪고 있다면, 아래의 설명과 코드를 참고해보길 바란다.
필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.
코드의 실행 순서
1) 입력값 4개(a, b, c, d)를 순차적으로 입력받는다.
2) a와 d를 한 팀으로 하고, b와 c를 한 팀으로 이루게끔 하여 격차를 연산하려 한다.
따라서 a+d에 b+c를 빼도록 연산을 취하도록 하고, 이 값을 변수 result를 선언하면서 저장하도록 한다.
이때, 만일 result의 값이 음수로 나왔다면 양수로 변환하도록 한다. 격차를 구하는 것이기 때문에 양수로 출력하게끔 해야 한다.
3) 연산이 완료된 result의 값을 출력한 뒤, 실행 종료한다.
반응형
성공한 코드
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#define endl '\n'
using namespace std;
//백준 13866번 코드
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int a, b, c, d;
cin >> a >> b >> c >> d;
int result = (a + d) - (b + c);
if (result < 0) { result *= -1; }
cout << result << endl;
}
제출 결과
(2022.08.14 백준 13866번 문제 제출 결과)
반응형
'PS (Program Solving) > BOJ (백준)' 카테고리의 다른 글
[백준 BOJ] 2702번 초6 수학 (C++/cpp) (1) | 2022.10.05 |
---|---|
[백준 BOJ] 11728번 배열 합치기 (C++/cpp) (0) | 2022.10.04 |
[백준 BOJ] 13699번 점화식 (C++/cpp) (1) | 2022.10.04 |
[백준 BOJ] 10814번 나이순 정렬 (C++/cpp) (0) | 2022.10.04 |
[백준 BOJ] 11899번 괄호 끼워넣기 (C++/cpp) (0) | 2022.10.03 |