문제
승엽이는 자신의 감정을 표현하기 위해서 종종 문자 메시지에 이모티콘을 넣어 보내곤 한다. 승엽이가 보내는 이모티콘은 세 개의 문자가 붙어있는 구조로 이루어져 있으며, 행복한 얼굴을 나타내는 :-) 와 슬픈 얼굴을 나타내는 :-( 가 있다.
혜성이는 승엽이의 이모티콘을 귀여운 척이라고 생각해 매우 싫어하므로, 승엽이의 문자가 오면 전체적인 분위기만 판단해서 알려주는 프로그램을 작성하고 싶다.
입력
첫 줄에 최소 1개에서 최대 255개의 문자들이 입력된다.
출력
출력은 다음 규칙에 따라 정해진다.
- 어떤 이모티콘도 포함되어 있지 않으면, none 을 출력한다.
- 행복한 이모티콘과 슬픈 이모티콘의 수가 동일하게 포함되어 있으면, unsure 를 출력한다.
- 행복한 이모티콘이 슬픈 이모티콘보다 많이 포함되어 있으면, happy 를 출력한다.
- 슬픈 이모티콘이 행복한 이모티콘보다 많이 포함되어 있으면, sad 를 출력한다.
풀이 과정
행복한 얼굴을 나타내는 :-) 문자와 슬픈 얼굴을 나타내는 :-( 개수를 카운팅해야 한다. ( : 문자를 찾았다면, 행복한 얼굴 문자인지 슬픈 얼굴 문자인지를 찾는 방식을 사용한다. )
카운팅한 개수를 바탕으로, none, unsure, happy, sad 중에서 조건에 맞게 출력한다.
C
#include <stdio.h>
#include <string.h>
char str[260];
int main(void) {
gets(str);
int happy = 0;
int sad = 0;
for (int i = 0; i < strlen(str) - 2; i++) {
if (str[i] == ':' && str[i+1] == '-' && str[i+2] == ')') happy += 1;
if (str[i] == ':' && str[i+1] == '-' && str[i+2] == '(') sad += 1;
}
if (happy == 0 && sad == 0) printf("none");
else if (happy == sad) printf("unsure");
else if (happy > sad) printf("happy");
else printf("sad");
return 0;
}
Python
import sys
input = sys.stdin.readline
string = input().rstrip()
happy_cnt = string.count(':-)')
sad_cnt = string.count(':-(')
if happy_cnt == 0 and sad_cnt == 0: print('none')
elif happy_cnt == sad_cnt: print('unsure')
elif happy_cnt > sad_cnt: print('happy')
else: print('sad')
'-- 예전 기록 > BOJ' 카테고리의 다른 글
[ BOJ ] 12833 : XORXORXOR ( BRONZE 1 ) / C, Python (0) | 2023.11.16 |
---|---|
[ BOJ ] 2204 : 도비의 난독증 테스트 ( BRONZE 1 ) / C, Python (0) | 2023.11.14 |
[ BOJ ] 2309 : 일곱 난쟁이 ( BRONZE 1 ) / C, Python (0) | 2023.11.14 |
[ BOJ ] 1543 : 문서 검색 ( SILVER 5 ) / C, Python (0) | 2023.11.14 |
[ BOJ ] 5800 : 성적 통계 ( SILVER 5 ) / C, Python (0) | 2023.11.14 |