본문 바로가기

Coding Test/Problem Number

[Java] 인사성 밝은 곰곰이 [25192번]

https://www.acmicpc.net/problem/25192

  • 예제 입력1
9
ENTER
pjshwa
chansol
chogahui05
lms0806
pichulia
r4pidstart
swoon
tony9402
  • 예제 출력1
8
  • 예제 입력2
7
ENTER
pjshwa
chansol
chogahui05
ENTER
pjshwa
chansol
  • 예제 출력2
5
  • 예제 입력3
3
ENTER
lms0806
lms0806
  • 예제 출력3
1

  • 문제 접근
    • ENTER가 입력된 후 처음 입력된 채팅은 곰곰티콘으로 인사
    • 그 외엔 곰곰티콘을 사용하지 않는 기록
      곰곰티콘 인사 후 동일한 아이디가 채팅을 칠 수도 있음 → 입력 예제 3
  • 문제 해결
    • Set을 이용하여 유저의 아이디를 저장
    • ENTER가 입력되면 Set을 클리어 시킴
    • 존재 안할 경우 Set에 추가하고 곰곰티콘의 횟수를 1증가
    • 이미 존재하면 무시
  • 슈도 코드
Set 선언
GomGomCount(곰곰티콘 횟수)
chatLogCount(채팅방 기록수 저장)
for(chatLogCount만큼 반복){
	input(입력값 저장)
	if(input이 ENTER라면){
		Set 클리어
		continue
	}
	if(Set에 존재하는 input이면) continue
	Set에 추가
	GomGomCount 1증가
}
GomGomCount 출력
  • 코딩하기
public static void main(String[] args) throws Exception{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    Set<String> greetingUser = new HashSet<>();
    int chatLogCount = Integer.parseInt(br.readLine());
    int GomGomCount = 0; // 곰곰티콘 사용 횟수
    for(int i = 0; i < chatLogCount; i++){
        String input = br.readLine();
        if(input.equals("ENTER")) {
            // 입장 시 곰곰티콘 새로 카운트해야 하기 때문에
            // Set을 클리어해서 새로 유저를 등록
            greetingUser.clear();
            continue;
        }
        if(!greetingUser.contains(input)){ // Set에 없을 경우
            greetingUser.add(input); // 유저 추가
            GomGomCount++; // 곰곰티콘 인사
        }
    }
    System.out.println(GomGomCount);
}

'Coding Test > Problem Number' 카테고리의 다른 글

[Java] 숫자 카드 [10815번]  (0) 2024.07.20
[Java] 가희와 키워드 [22233번]  (0) 2024.07.20
[Java] 베스트셀러 [1302번]  (0) 2024.07.20
[Java] 팰린드롬 파티션 [2705번]  (0) 2024.07.20
[Java] Z [1074번]  (0) 2024.07.20