일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Euclidean
- solid 원칙
- Bronze
- stack
- 3D RPG
- programmers
- trie
- effective C++
- Project
- LEVEL2
- algorithm
- PrefixSum
- Flyweight Pattern
- SWEA
- Zenject
- Silver
- 프로그래머스
- BOJ
- level3
- 8-Puzzle
- BFS
- dirtyflag pattern
- Modern C++
- 프로세스 상태
- two pointer
- level1
- binary search
- Gold
- Unity
- knapsack Problem
Archives
- Today
- Total
Patrick's Devlog
[BOJ/C++] 행복한지 슬픈지(10769번) 본문
1. 문제 개요
https://www.acmicpc.net/problem/10769
10769번: 행복한지 슬픈지
승엽이는 자신의 감정을 표현하기 위해서 종종 문자 메시지에 이모티콘을 넣어 보내곤 한다. 승엽이가 보내는 이모티콘은 세 개의 문자가 붙어있는 구조로 이루어져 있으며, 행복한 얼굴을 나
www.acmicpc.net
1-1. 설명
승엽이는 이모티콘을 좋아해서 메시지에 종종 이모티콘을 붙인다. 행복할 땐 :-)를, 슬플땐 :-(를 보낸다. 혜성이는 승엽이의 이모티콘을 싫어하므로 승엽이의 문자가 오면 전체적인 분위기만 판단해서 알려주는 프로그램을 작성하고자 한다.
1-2. 제한 사항
- 첫줄에 최소 1개, 최대 255개 문자 입력
- 이모티콘 포함되지 않을 시 none
- 행복한 이모티콘과 슬픈 이모티콘 수가 동일할 시 unsure
- 행복한 이모티콘이 슬픈 이모티콘 수보다 많을 시 happy
- 슬픈 이모티콘이 행복한 이모티콘 수보다 많을 시 sad
2. 구현
2-1. 설명
단순하게 C++의 find를 사용하여 이모티콘의 개수를 파악하고 카운트를 세어 각 카운트에 맞는 값을 출력하게 한다.
2-1. 소스 코드
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(void) {
string inputString;
getline(cin, inputString); // 한 줄 입력
int happy = 0, sad = 0;
int happyCount = 0, sadCount = 0;
string happyStr = ":-)", sadStr = ":-(";
while (true) {
if (inputString.find(happyStr, happy) != string::npos) { // 행복 이모티콘이 존재할 때
happyCount += 1; // 1 증가
happy = inputString.find(happyStr, happy) + happyStr.length(); // 이모티콘 길이만큼 인덱스 변경
}
if (inputString.find(sadStr, sad) != string::npos) { // 슬픈 이모티콘이 존재할 때
sadCount += 1; // 1 증가
sad = inputString.find(sadStr, sad) + sadStr.length(); // 이모티콘 길이만큼 인덱스 변경
}
if ((inputString.find(happyStr, happy) == string::npos) && (inputString.find(sadStr, sad) == string::npos)) break;
// 이모티콘이 존재하지 않으면 반복문 종료
}
if (happyCount == 0 && sadCount == 0) cout << "none" << endl;
else if (happyCount == sadCount) cout << "unsure" << endl;
else if (happyCount > sadCount) cout << "happy" << endl;
else cout << "sad" << endl;
}
'Algorithm > Algorithms Practice' 카테고리의 다른 글
[BOJ/C++] 달팽이는 올라가고 싶다(2869번) (0) | 2022.06.30 |
---|---|
[BOJ/C++] 수 찾기(1920번) (0) | 2022.06.29 |
[BOJ/C++] 카드2(2164번) (0) | 2022.06.23 |
[프로그래머스/C++] 스킬트리 (0) | 2022.06.21 |
[BOJ/C++] 나는 친구가 적다(16171번) (0) | 2022.06.15 |