[algorithm] 백준 7785 - 회사에 있는 사람
안녕하세요. 심심한 코딩쟁이입니다.
오늘은 백준 7785번 문제 - 회사에 있는 사람 의 풀이를 살펴보도록 하겠습니다.
풀이에 사용한 언어는 Python3 입니다.
문제 해석과 풀이 다 함께 살펴보시죠.
백준 BAEKJOON 7785
반응형
문제 해석
주어지는 입력값을 통해 현재 회사에 출근해있는 사람의 명단을 사전 순의 역순으로 출력하는 문제입니다.
입력값으로 주어지는 출퇴근 로그의 최대 길이가 아주 길기 때문에 신경쓰지 않으면 시간초과를 받을 수 있습니다.
힌트 : import sys
풀이 1 - input()을 사용해 4100ms 소요됨
# 7785 회사에 있는 사람
n = int(input())
dict = {}
for _ in range(n):
name, state = input().split()
if state == 'enter':
dict[name] = 1
else:
del dict[name]
# 현재 출근 상태이면 1 퇴근 상태이면 제거
for i in sorted(dict, reverse=True):
print(i)
풀이 2 - sys.stdin.readline()을 사용해 176ms 소요됨
import sys
n = int(sys.stdin.readline())
dict = {}
for _ in range(n):
name, state = sys.stdin.readline().rstrip().rsplit()
if state == 'enter':
dict[name] = 1
else:
del dict[name]
# 현재 출근 상태이면 1 퇴근 상태이면 제거
for i in sorted(dict, reverse=True):
print(i)
풀이 해석 및 팁
출퇴근 로그에서 enter가 보이면 직원의 이름을 키로 가지고 값은 1인 딕셔너리 요소를 추가해줍니다.
그리고 enter가 아닐경우에는 딕셔너리에서 요소를 제거해줍니다.
이렇게 모든 로그를 검사하면 최종적으로 딕셔너리의 키 리스트가 현재 회사에 있는 사람들의 명단이 됩니다.
마지막 출력부분 코드를 보면 sorted 안에 딕셔너리를 넣어주었는데 이 코드는 키값을 기준으로 정렬하여
리스트를 반환해 줍니다.
이를 활용해 for 반복문으로 현재 회사에 있는 사람들의 명단을 한 줄씩 출력해주면 문제 해결입니다.
여기까지 백준 7785번 회사에 있는 사람 문제 풀이였습니다.
이번 문제의 정답률은 41% 정도입니다.
문제를 풀어서 제출을 눌렀더니 실패라는 결과를 받아서 뭐가 문제지? 하면서 문제를 다시 읽어보았습니다.
출력 과정에서 사전 순의 역순으로 정렬하라는 말이 적혀있었습니다.
문제를 대충 읽어서 틀리게 되어버린 경우입니다.
어떠한 일이나 문제에 스스로가 자신있다 하더라도 마음에 여유를 지니고 천천히 살펴보면서 일을 진행하는
습관을 몸에 익히면 인생에 있어 좋은 양분이 될 것 같습니다.
감사합니다.
반응형
'programming > algorithm' 카테고리의 다른 글
[algorithm] 백준 10872 - 팩토리얼 (0) | 2023.04.22 |
---|---|
[algorithm] 백준 24723 - 녹색거탑 (0) | 2023.04.21 |
[algorithm] 백준 18870 - 좌표 압축 (0) | 2023.04.19 |
[algorithm] 백준 10814 - 나이순 정렬 (0) | 2023.04.18 |
[algorithm] 백준 1181 - 단어 정렬 (0) | 2023.04.17 |