programmers.co.kr/learn/courses/30/lessons/42888
이제 시작하기전에 문제를 뜯어 보았다
처음에는 막상 문제가 너무 쉬워보였지만.. 어림도 없짘ㅋ
Enter가 들어가면 "{닉네임}님이 들어갔습니다."
Leave가 들어가면 "{닉네임}님이 나갔습니다."가 출력해야 하는데
여기서 주의해야 할 것은 닉네임을 바꾸는 방식이 두가지가 있는데
1. 나갔다가 다른닉네임으로 들어오기
2. Change사용하기
어떠한 형식으라도 닉네임들이 바뀌게 되면 이전에 있던 로그들이 전부 바껴야 한다는 것이였다.
처음에 유저아이디이 들어가니 SQL처럼 해야한다고 계속 생각이 들어서
시간을 오래 잡아먹어 집중력이 너무 흩어졌다.
다시 10분간 쉬고 마음을 다 잡으니
패스할 수 있었다.
def solution(record):
answer = []
openchat_log={}
messages =[]
for data in record:
data=data.split()
if data[0] == 'Enter':
openchat_log[data[1]] = data[2]
messages.append([data[1],'님이 들어왔습니다.'])
elif data[0] == 'Leave':
messages.append([data[1],'님이 나갔습니다.'])
elif data[0] == 'Change':
openchat_log[data[1]] = data[2]
for message in messages:
message[0]=openchat_log[message[0]]
answer.append("".join(message))
return answer
- 코딩을 하는 초반에 코드를 작성했을 때는
먼저 이해한 내용으로 코드들을 써놓고
나중에 문제가 발생하고 오류가 생겼을 때 고치기 위해서 코드가 길어지거나
그 코드들에 빠지는 경우가 생겼었지만 경험이 쌓이다 보니 문제가 나오면 먼저 코드를 작성하지 않고,
문제를 자세히 살필 수 있게 된 것 같다.
[coding_test]로또의 최고 순위와 최저 순위 (0) | 2021.05.20 |
---|---|
리눅스 마스터 2급 문제(21~30) (0) | 2021.05.13 |
[coding_test]멀쩡한 사각형 (0) | 2021.05.12 |
[coding_test]체육복 (0) | 2021.05.11 |
[coding_test]모의고사 (0) | 2021.05.11 |