본문 바로가기
Algorithm Problem Solving/BaekJoon

[BaekJoon] 백준 10769 행복한지 슬픈지 (Python / 파이썬)

by ʚ⇜❅🎕̈❄⇝ɞ 2021. 8. 22.
728x90
반응형

BaekJoon 백준 10769 행복한지 슬픈지 문제는 메시지 내의 이모티콘은 세 개의 문자가 붙어있는 구조이며, 행복한 얼굴을 나타내는 :-)와 슬픈 얼굴을 나타내는 :-( 가 있다. 이모티콘 개수를 보고 메시지의 전체적인 분위기를 판단하는 문제이다. 난이도는 Bronze 1이다.

 

BaekJoon 10769 행복한지 슬픈지 문제 정보

출처

- https://www.acmicpc.net/problem/10769

알고리즘 분류

- 문자열 string, 파싱 parsing, 구현

난이도

- 브론즈 1 / Bronze 1

 

행복한지 슬픈지 문제 요약

  • 승엽이는 자신의 감정을 표현하기 위해서 종종 문자 메시지에 이모티콘을 넣어 보내곤 한다.
  • 승엽이가 보내는 이모티콘은 세 개의 문자가 붙어있는 구조로 이루어져 있으며, 행복한 얼굴을 나타내는 :-)와 슬픈 얼굴을 나타내는 :-( 가 있다.
  • 혜성이는 승엽이의 이모티콘을 귀여운 척이라고 생각해 매우 싫어하므로, 승엽이의 문자가 오면 전체적인 분위기만 판단해서 알려주는 프로그램을 작성하고 싶다.
  • 최소 1개에서 최대 255개의 문자들이 입력된다.
  • 출력은 다음 규칙에 따라 정해진다.
    • 어떤 이모티콘도 포함되어 있지 않으면, none을 출력한다.
    • 행복한 이모티콘과 슬픈 이모티콘의 수가 동일하게 포함되어 있으면, unsure를 출력한다.
    • 행복한 이모티콘이 슬픈 이모티콘보다 많이 포함되어 있으면, happy를 출력한다.
    • 슬픈 이모티콘이 행복한 이모티콘보다 많이 포함되어 있으면, sad를 출력한다.

 

문제 풀이 과정

  1. 0부터 문자 길이 - 2 범위까지 반복하면서
  2. 행복한 얼굴이나, 슬픈 얼굴을 찾으면 각 각 카운트한다.
  3. 행복한, 슬픈 이모티콘의 개수를 비교하여 출력 규칙에 따라 출력한다.

 

코드 및 설명
  • happy - 행복한 얼굴 개수
  • sad - 슬픈 얼굴 개수
message = input()
happy = sad = 0
for i in range(0, len(message) - 2):
    if message[i] == ':' and message[i + 1] == '-':
        if message[i + 2] == ')':
            happy += 1
        elif message[i + 2] == '(':
            sad += 1

if happy == 0 and sad == 0:
    print('none')
else:
    if happy > sad:
        print('happy')
    elif happy < sad:
        print('sad')
    else:
        print('unsure')

BaekJoon 백준 10769 행복한지 슬픈지 문제를 파이썬 python으로 풀어보았다. 난이도는 Bronze 브론즈 1이다. 

 

728x90
반응형

댓글