[python_파이썬_pass]백준_7785번_회사에 있는 사람_풀이
2024. 5. 11. 18:57ㆍ코드리뷰
728x90
반응형
공부하는허딩크 : https://www.youtube.com/live/S9Tn1JM6-yc?feature=shared
일단 문제는 쉽게 느껴진다.
기본적으로 이 문제를 접하는 사람이라면 어느정도 실력이 쌓여서 올라 왔을테니...
시간이 1초로 조금 짧게 느껴졌지만 (하단참조) 이런게 없기에 일단 시간을 고려하지 않고 바로 리스트를 활용해서 문제를 풀었다.
<첫번째 시도 : 시간초과>
역시 list를 활용하니 시간초과를 예상했다. 그럼 다시 dict로 전환해준다.
#시간초과
n = int(input())
member = []
for _ in range(n):
A, B = input().split()
if B == "enter":
member.append(A)
else:
member.remove(A)
member.sort(reverse=True)
for i in member:
print(i)
<두번째 시도 : 틀렸습니다.>
이것도 오름차순의 역순을 해주시 않았기에 틀릴 것으로 예상을 했다. 단, 예제는 순서를 정해주지 않아도 올바른 답을 출력하지만 조건에는 오름차순의 역순으로 출력하라는 조건이 있다.
#틀렸습니다. / 오름차순의 역순 안해줌
n = int(input())
member = dict()
for _ in range(n):
A, B = input().split()
if B == "enter":
member[A] = 1
else:
member[A] = 0
for i in member.keys():
if member[i]:
print(i)
<세번째 시도 : 통과>
dict에 sort()는 사용할 수가 없다. sorted를 활용하자. keys()를 주면 키로 정렬, value()를 주면 값으로 정렬 된다.
items()를 줘도 일단 키를 기준으로 정렬된다.
import sys
input = sys.stdin.readline
n = int(input())
member = dict()
for _ in range(n):
A, B = input().split()
if B == "enter":
member[A] = 1
else:
member[A] = 0
for i in sorted(member.keys(), reverse=True):
if member[i]:
print(i)
<다른사람풀이 참조>
1. del member[A]를 해서 아예 지워주는 것도 방법이다.
n = int(input())
record = {}
for _ in range(n):
name, condition = input().split()
if condition == "enter":
record[name] = condition
else:
del record[name]
record = sorted(record,reverse = True)
for i in record:
print((i))
2. 굳이? set과 dict와 list를 모두 사용하고 add, remove, append까지 사용했다.
ㄴ 코드의 가독성은 별로이나 이 한 코드에 많은 함수가 담겨 있어 학습용으로 괜찮은 것 같다.
import sys
input = sys.stdin.readline
n = int(input())
employee = set()
dict1 = {"enter":1,"leave":0}
for i in range(0,n):
name, status = map(str,input().rstrip().split())
if dict1[status]:
employee.add(name)
else:
employee.remove(name)
arr = list()
for i in employee:
arr.append(i)
arr.sort()
for i in range(0,len(arr)):
print(arr[len(arr) - i - 1])
728x90
반응형
'코드리뷰' 카테고리의 다른 글
[python_파이썬_pass]백준_10816번_숫자 카드2_풀이 (0) | 2024.05.11 |
---|---|
[python_파이썬]백준_1620번_나는야 포켓몬 마스터 이다솜_풀이 (0) | 2024.05.11 |
[python_파이썬_pass]백준_14425번_문자열 집합_풀이 (0) | 2024.05.11 |
[python_파이썬_pass]프로그래머스_LV1_두 개 뽑아서 더하기_풀이 (0) | 2024.05.10 |
[python_파이썬_pass]프로그래머스_LV1_K번째수_풀이 (0) | 2024.05.10 |