문제 10769 행복한지 슬픈지
문제
승엽이는 자신의 감정을 표현하기 위해서 종종 문자 메시지에 이모티콘을 넣어 보내곤 한다. 승엽이가 보내는 이모티콘은 세 개의 문자가 붙어있는 구조로 이루어져 있으며, 행복한 얼굴을 나타내는 :-) 와 슬픈 얼굴을 나타내는 :-( 가 있다.
혜성이는 승엽이의 이모티콘을 귀여운 척이라고 생각해 매우 싫어하므로, 승엽이의 문자가 오면 전체적인 분위기만 판단해서 알려주는 프로그램을 작성하고 싶다.
입력
첫 줄에 최소 1개에서 최대 255개의 문자들이 입력된다.
출력
출력은 다음 규칙에 따라 정해진다.
- 어떤 이모티콘도 포함되어 있지 않으면, none 을 출력한다.
- 행복한 이모티콘과 슬픈 이모티콘의 수가 동일하게 포함되어 있으면, unsure 를 출력한다.
- 행복한 이모티콘이 슬픈 이모티콘보다 많이 포함되어 있으면, happy 를 출력한다.
- 슬픈 이모티콘이 행복한 이모티콘보다 많이 포함되어 있으면, sad 를 출력한다.
예제 입력 1
How are you :-) doing :-( today :-)? | cs |
예제 출력 1
예제 출력 3
sad | cs |
코드
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 | import sys message = str(sys.stdin.readline()) happy = 0 sad = 0 emoji = [] message = list(message) for e in range(len(message)): if message[e] == ':': if message[e+2] == ')': happy += 1 elif message[e+2] == '(': sad += 1 else: continue def compare(h, s): if h ==0 and s ==0: return 'none' elif h == s: return 'unsure' elif h > s: return 'happy' else: return 'sad' print(compare(happy, sad)) | cs |
코드 설명
1. 메세지를 리스트로 형변환한다.
2. 확인할 이모티콘은 ':-)', ':-(' 두 가지 형태로 ':'이 나오면 두칸 뒤는 ')' 또는 '('가 나와야함을 이용해 if문을 활용해 이모티콘을 찾아주며, ':-)'인 경우는 happy에 1을 더하고 ':-('인 경우에는 sad에 1을 더해준다.
3. happy와 sad의 수를 비교하면서 'none', 'unsure', 'happy', 'sad'를 출력한다.
알고리즘 분류
- 문자열 처리
반응형
'코딩테스트 > Baekjoon' 카테고리의 다른 글
(Python 3) 백준 알고리즘 2231 분해합 (0) | 2020.11.23 |
---|---|
(Python 3) 백준 알고리즘 1296 데이트 (0) | 2020.02.20 |
(Python 3) 백준 알고리즘 15953 상금 헌터 (0) | 2019.10.31 |
(Python 3) 백준 알고리즘 10773 제로 (0) | 2019.07.18 |
(Python 3) 백준 알고리즘 10828 스택 (1) | 2019.07.18 |