2022. 12. 26. 14:54ㆍPS (Program Solving)/BOJ (백준)
문제 설명
https://www.acmicpc.net/problem/10886
10886번: 0 = not cute / 1 = cute
준희는 자기가 팀에서 귀여움을 담당하고 있다고 생각한다. 하지만 연수가 볼 때 그 의견은 뭔가 좀 잘못된 것 같았다. 그렇기에 설문조사를 하여 준희가 귀여운지 아닌지 알아보기로 했다.
www.acmicpc.net
접근 방법 - 사칙연산의 기본 문제
백준의 10886번 문제는 사칙연산을 이용하여 쉽게 해결할 수 있는 문제이다.
해당 문제는, 입력값으로 주어지는 설문조사의 결과로 준희가 귀여운지 아닌지(...)를 출력해야 하는 문제이다.
이때, 의견은 홀수개로 주어지며 의견의 개수가 더 많은 쪽으로 정답을 출력하면 된다.
알고리즘 문제를 어느 정도 풀어보았다면, 해당 문제는 아주 쉽게 풀 수 있을 것으로 예상된다.
혹여나 해당 문제를 해결하는 데에 어려움을 겪고 있다면, 아래의 설명과 코드를 참고해보길 바란다.
필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.
코드의 실행 순서
1) 각 의견의 개수를 저장할 배열(op)을 전역 변수로 미리 선언해 둔다.
(의견은 2가지뿐이기 때문에 크기는 2로 설정한다.)
2) 총의견의 개수(n)를 입력받는다.
3) n의 크기만큼 반복문을 실행하여, 아래의 연산을 취한다.
- 의견(opi)을 하나씩 입력받는다.
- 입력받은 opi를 인덱스로 갖는 op의 배열값에 1을 더하도록 한다.
(opi[0]은 의견 0의 개수를 의미하고, opi[1]은 의견 1의 개수를 의미한다.)
4) 의견 정리가 끝났다면, 아래처럼 결괏값을 출력하도록 한다.
- 만일 opi[0] 값이 opi[1] 값보다 크다면, 이는 의견 0의 개수가 더 많다는 것을 의미한다. 따라서 이 경우엔, "Junhee is not cute!"를 출력하도록 한다.
- 다만 반대로 opi[1] 값이 opi[0] 값보다 크다면, 이는 의견 1의 개수가 더 많다는 것을 의미한다. 따라서 이 경우엔, "Junhee is cute!"를 출력하도록 한다.
5) 정답을 출력하였다면, 실행 종료한다.
성공한 코드
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#define endl '\n'
using namespace std;
//백준 10886번 코드
int op[2];
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int n;
cin >> n;
for (int i = 0; i < n; i++) {
int opi;
cin >> opi;
op[opi]++;
}
if (op[0] > op[1]) { cout << "Junhee is not cute!" << endl; }
else { cout << "Junhee is cute!" << endl; }
}
제출 결과
(2022.12.25 백준 10886번 문제 제출 결과)
'PS (Program Solving) > BOJ (백준)' 카테고리의 다른 글
[백준 BOJ] 9295번 주사위 (C++/cpp) (0) | 2023.01.02 |
---|---|
[백준 BOJ] 12005번 Diamond Collector (Bronze) (C++/cpp) (0) | 2022.12.30 |
[백준 BOJ] 10821번 정수의 개수 (C++/cpp) (0) | 2022.12.26 |
[백준 BOJ] 23278번 영화 평가 (C++/cpp) (0) | 2022.12.15 |
[백준 BOJ] 25314번 코딩은 체육과목입니다 (C++/cpp) (0) | 2022.12.12 |