본문 바로가기
백준

[백준] 25192번 : 인사성 밝은 곰곰이 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트

by 우당탕탕 개발자 2023. 12. 9.
728x90
반응형

 

 

25192번: 인사성 밝은 곰곰이

첫번째 새로운 사람이 들어온 뒤  pjshwa, chansol, chogahui05은 모두 곰곰티콘으로 인사했다. 두번째 새로운 사람이 들어온 뒤  pjshwa와 chansol은 다시 곰곰티콘으로 인사했다.

www.acmicpc.net

 

1. 문제 설명

2. 풀이과정

해당 문제는 채팅방에서 곰곰티콘이 사용된 횟수를 구하는 문제이다.

한 채팅방에서 채팅을 입력한 유저를 한 세트에 저장한다.

여기서 유저의 이름을 세트에 저장하는 이유는 새로운 사람이 들어오기 전까지는 원래 있던 사람들끼리 채팅을 하는 것이므로 한 명당 한 번의 곰곰티콘을 사용하고, 이후 채팅은 그냥 일반 채팅이기 때문이다.

이후 ENTER가 입력되고 새로운 사람이 들어오면 새롭게 곰곰티콘을 사용할 수 있다.

하여 ENTER가 입력되면 기존에 곰곰티콘을 사용한 유저의 기록에서 유저의 수를 곰곰티콘 사용 횟수에 추가하고, 유저의 기록을 초기화하여 새롭게 곰곰티콘을 사용한 유저를 기록한다.

 

  1. sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
  2. 채팅방의 기록 수를 입력받는다. N = int(sys.stdin.readline())
  3. 채팅을 입력한 유저의 닉네임을 저장할 세트를 생성한다. s = set()
  4. 전체 곰곰티콘이 사용된 횟수를 저장할 변수를 생성하고 초기화한다. result = 0
  5. 채팅방의 기록 수만큼 반복하며 for _ in range(N)
  6. 문자열을 입력받는다. st = sys.stdin.readline().rstrip()
  7. 만약 입력받은 문자열이 ENTER이면 if (st == 'ENTER')
  8. 이전 채팅방에 채팅을 입력한 유저의 수를 곰곰티콘이 사용된 횟수에 추가한다. result += len(s)
  9. 채팅방에 새로운 사람이 들어왔으므로 채팅방에 채팅을 입력한 유저의 닉네임을 초기화한다. s = set()
  10. 반면 입력받은 문자열이 ENTER이 아니라 유저의 닉네임이라면 else
  11. 채팅을 입력한 유저의 닉네임을 세트에 추가한다. s.add(st)
  12. 모든 입력이 끝나고 반복문을 나오면 마지막으로 현재 유저의 수를 곰곰티콘이 사용된 횟수에 추가하고 result += len(s)
  13. 전체 곰곰티콘이 사용된 횟수를 출력한다. print(result)
반응형

3. 소스코드

import sys

N = int(sys.stdin.readline())

s = set()
result = 0
for _ in range(N):
    st = sys.stdin.readline().rstrip()
    
    if (st == 'ENTER'):
        result += len(s)
        s = set()
    else:
        s.add(st)

    
result += len(s)
print(result)
728x90
반응형