https://school.programmers.co.kr/learn/courses/30/lessons/42888
1. 내가 작성한 풀이
user_id 라는 고윳값(key)은 그대로 두고 nickname(value)를 변경시키는 문제라서 딕셔너리를 사용했다.
Enter나 Change의 경우 nickname으로 value를 다시 변경할 수 있도록 처리해 주고,
Enter나 Leave일 경우 출력되어야 하기 때문에 "들어왔습니다" 혹은 "나갔습니다"로 변경해 준다.
이후 전체를 조건에 맞게 변경하면 된다.
- 첫 번째 제출 코드는 좀 더러워서 아래와 같이 수정해 줬다.
def solution(record):
user = {}
result = []
for i in record:
info = i.split()
if info[0] in ("Enter","Change"): #nickname 변경
user[info[1]] = info[2]
if info[0] in ("Enter","Leave"): #출력을 위해 한글로 변경
if info[0] == "Enter":
info[0] = "들어왔습니다."
else:
info[0] = "나갔습니다."
result.append((info[1],info[0]))
for j in range(len(result)): #조건에 맞게 출력
result[j] = str(user[result[j][0]] + "님이 " + result[j][1])
return result
2. 수정
def solution(record):
user = {}
result = []
for i in record:
info = i.split()
if len(info) == 3:
user[info[1]] = info[2]
for i in record:
info = i.split()
if info[0] == "Enter":
result.append('%s님이 들어왔습니다.' %user[info[1]])
elif info[0] == "Leave":
result.append('%s님이 나갔습니다.' %user[info[1]])
return result
서식 지정자를 활용을 잘 못 하는 것 같다.
문자열 문제를 더 풀어봐야겠삼
'🔅코딩테스트 공부🔅 > ❗프로그래머스(Lv.2)' 카테고리의 다른 글
[프로그래머스] Level2 타겟 넘버(python) (0) | 2023.04.21 |
---|---|
[프로그래머스] Level2 후보키(python) (0) | 2023.04.20 |
[프로그래머스] Level2 구명보트(python) (0) | 2023.04.18 |
[프로그래머스] Level2 큰 수 만들기(python) (0) | 2023.04.17 |
[프로그래머스] Level2 영어 끝말잇기(python) (0) | 2023.04.17 |
댓글