백준
[백준] 25192번 : 인사성 밝은 곰곰이 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트
우당탕탕 개발자
2023. 12. 9. 12:54
728x90
반응형
25192번: 인사성 밝은 곰곰이
첫번째 새로운 사람이 들어온 뒤 pjshwa, chansol, chogahui05은 모두 곰곰티콘으로 인사했다. 두번째 새로운 사람이 들어온 뒤 pjshwa와 chansol은 다시 곰곰티콘으로 인사했다.
www.acmicpc.net
1. 문제 설명
2. 풀이과정
해당 문제는 채팅방에서 곰곰티콘이 사용된 횟수를 구하는 문제이다.
한 채팅방에서 채팅을 입력한 유저를 한 세트에 저장한다.
여기서 유저의 이름을 세트에 저장하는 이유는 새로운 사람이 들어오기 전까지는 원래 있던 사람들끼리 채팅을 하는 것이므로 한 명당 한 번의 곰곰티콘을 사용하고, 이후 채팅은 그냥 일반 채팅이기 때문이다.
이후 ENTER가 입력되고 새로운 사람이 들어오면 새롭게 곰곰티콘을 사용할 수 있다.
하여 ENTER가 입력되면 기존에 곰곰티콘을 사용한 유저의 기록에서 유저의 수를 곰곰티콘 사용 횟수에 추가하고, 유저의 기록을 초기화하여 새롭게 곰곰티콘을 사용한 유저를 기록한다.
- sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
- 채팅방의 기록 수를 입력받는다. N = int(sys.stdin.readline())
- 채팅을 입력한 유저의 닉네임을 저장할 세트를 생성한다. s = set()
- 전체 곰곰티콘이 사용된 횟수를 저장할 변수를 생성하고 초기화한다. result = 0
- 채팅방의 기록 수만큼 반복하며 for _ in range(N)
- 문자열을 입력받는다. st = sys.stdin.readline().rstrip()
- 만약 입력받은 문자열이 ENTER이면 if (st == 'ENTER')
- 이전 채팅방에 채팅을 입력한 유저의 수를 곰곰티콘이 사용된 횟수에 추가한다. result += len(s)
- 채팅방에 새로운 사람이 들어왔으므로 채팅방에 채팅을 입력한 유저의 닉네임을 초기화한다. s = set()
- 반면 입력받은 문자열이 ENTER이 아니라 유저의 닉네임이라면 else
- 채팅을 입력한 유저의 닉네임을 세트에 추가한다. s.add(st)
- 모든 입력이 끝나고 반복문을 나오면 마지막으로 현재 유저의 수를 곰곰티콘이 사용된 횟수에 추가하고 result += len(s)
- 전체 곰곰티콘이 사용된 횟수를 출력한다. 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
반응형