[boj] (s5) 7785 회사에 있는 사람

강신현·2022년 4월 8일
0

✅ map

문제

링크

풀이

1. 문제 접근

직원들 출입카드에 기록될 수 있는 종류는 "enter" 출근, "leave" 퇴근 뿐이다.

2. 자료구조 선택과 그 이유

직원마다 출근 상태인지 퇴근 상태인지 알아야 하므로 map<직원이름, 상태>을 사용하면 된다.

3. 문제 해결 로직 (풀이법)

의사코드

map<string, string> people // map<직원이름, 상태>

cin >> n

while(n--){
	cin >> name >> status
    map[name] = status
}

for(auto i : map){
	if(i.second == "enter") cout << i.first << "\n"
}

4. 시간 복잡도 분석

O(1)

5. 문제에서 중요한 부분

직원들 마다 독립적으로 상태를 최신화 해야하며 특정 상태인 직원만 알아야 하므로 map이 유리하다고 떠올리는것이 중요한 문제
구현자체는 간단

profile
땅콩의 모험 (server)

0개의 댓글