2021. 8. 13. 22:46ใ๐ป ๊ฐ๋ฐ/Algorithm
โญLevel 2
https://programmers.co.kr/learn/courses/30/lessons/42888
์ฝ๋ (Python)
def solution(record):
answer = []
dic = {}
for i in record:
temp = i.split()
if temp[0] == "Enter" or temp[0] == "Change":
dic[temp[1]] = temp[2]
else: # Leave
continue
for i in record:
temp = i.split()
if temp[0] == "Enter":
answer.append(dic[temp[1]] + "๋์ด ๋ค์ด์์ต๋๋ค.")
if temp[0] == "Leave":
answer.append(dic[temp[1]] + "๋์ด ๋๊ฐ์ต๋๋ค.")
else: # Change
continue
return answer
ํ์ด ๊ณผ์
id๋ ๊ณ ์ ๊ฐ์ด๋ฉฐ, id์ ํด๋นํ๋ ๋๋ค์์ ๊ฐ๋ณ์ ์ด๋ค. ๋๋ค์์ด ๋ฐ๋๋๊ฑด Enter์ Change ์ด ๋๊ฒฝ์ฐ์ด๊ณ , Leave๋ ๋ ๋ฌ๋ค๋ ๋ฉ์์ง๋ง ๋จ๊ธด๋ค.
๋ฐ๋ผ์ ๋์ ๋๋ฆฌ {id: ๋๋ค์} ์ ๋ง๋ค๊ณ , record ์ ๋ ฅ์ค ๊ฐ์ฅ ๋ง์ง๋ง์ผ๋ก ์ ๋ฐ์ดํธ ๋๋ Enterํน์ Change ์ ๋ ฅ๊ฐ์ผ๋ก ๋์ ๋๋ฆฌ๋ฅผ ์ ๋ฐ์ดํธ ํด์ค๋ค.
์ด๋, key๊ฐ ์ค๋ณต์ธ๊ฒฝ์ฐ (๋์ผํ id๋ฅผ ๊ฐ์ง๊ฒฝ์ฐ) ๊ฐ์ฅ ๋ง์ง๋ง์ ๋ค์ด์ค๋ value๊ฐ์ผ๋ก ์ต์ข ์ ๋ฐ์ดํธ ๋๋ค. (๋์ ๋๋ฆฌ ํน์ฑ์, key๋ ์ค๋ณต์ ํ์ฉํ์ง ์๊ธฐ๋๋ฌธ์ ๋ง์ง๋ง ๊ฐ๋ง ๋ค์ด๊ฐ๋ค.)
[์ ๋ ฅ]
record = ["Enter uid1234 Muzi",
"Enter uid4567 Prodo",
"Leave uid1234",
"Enter uid1234 Prodo",
"Change uid4567 Ryan"]
[์ถ๋ ฅ]
answer = ["Prodo๋์ด ๋ค์ด์์ต๋๋ค.",
"Ryan๋์ด ๋ค์ด์์ต๋๋ค.",
"Prodo๋์ด ๋๊ฐ์ต๋๋ค.",
"Prodo๋์ด ๋ค์ด์์ต๋๋ค."]
uid1234๋ ์ฒ์์ Muzi๋ก ์ ์ฅํ๋ค๊ฐ, ์ฑํ ๋ฐฉ์ ๋๊ฐ๊ณ Prodo๋ก ๋๋ค์์ ๋ฐ๊ฟ์ ๋ค์ด์๋ค.
๋ฐ๋ผ์ ์ต์ข ๋๋ค์์ Prodo์ด๊ณ , ๊ด๋ฆฌ์ ํ๋ฉด์์ ๋ค์ด์ค๊ณ ๋๊ฐ ๋๋ค์์ Prodo๋ก ๊ธฐ๋ก๋์ด์ผํ๋ค.
uid4567์ Prodo๋ก ์ ์ฅํด์ ๋๋ค์์ Ryan์ผ๋ก ๋ฐ๊ฟจ๋ค. ๋ฐ๋ผ์ ์ต์ข ๋๋ค์์ Ryan์ด๊ณ , ๊ด๋ฆฌ์ ํ๋ฉด์ Ryan์ผ๋ก ๊ธฐ๋ก๋๋ค.
1. ๋์ ๋๋ฆฌ ๋ง๋ค๊ธฐ
dic = {}
for i in record:
temp = i.split()
if temp[0] == "Enter" or temp[0] == "Change":
dic[temp[1]] = temp[2]
else: # Leave
continue
3: ์ ๋ ฅ๋ฐ์ record๋ฅผ ๋ช ๋ น์ด/id/๋๋ค์ ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ๋ฆฌ์คํธ๋ก ๋ง๋ค์ด์ผํ๋ค. ๋ฐ๋ผ์ ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋ถ๋ฆฌํ์ฌ temp๋ณ์์ ์ ์ฅํด๋์๋ค.
4~5: ๋์ ๋๋ฆฌ๋ฅผ ๊ตฌ์ฑํ๋ ๋ถ๋ถ์ด๋ค. "Enter"์ "Change"๋ฅผ ํตํด id๋ง๋ค ๋๋ค์์ด ์ ํด์ง๋ค. ๋ชจ๋ record๋ฅผ ๋๋ฉด์ ๋ฐ๋ณต๋๊ณ , ๊ฐ์ฅ ๋ง์ง๋ง value๊ฐ ์ต์ข ๋๋ค์์ด๋ค. ๋์ ๋๋ฆฌ๋ d = {1 : 'a', 2 : 'b'} ์์ d[1]๋ 'a'๋ฅผ ๋ฐํํ๋ค. ์ด๋ฐ์์ผ๋ก ์ ๊ทผํ๋ฉด ๋๋ค.
6~7: "Leave"๋ฅผ ๋ง๋๋ ๋๋ค์์ด ๋ฐ๋๋๊ฑด ์๋๋ผ์ ๋ฌด์.
์์ ์ ๋ ฅ์ ๋ฐ๋ฅด๋ฉด, {'uid1234': 'Prodo', 'uid4567': 'Ryan'} ์ด๋ผ๋ ๋์ ๋๋ฆฌ๊ฐ ์์ฑ๋ ๊ฒ์ด๋ค. ์ด์ ์ด ๋์ ๋๋ฆฌ์ ์ ๊ทผํด์ value๋ง ๋ฝ์๋ด๋ฉด ๋๋ค.
2. ์ถ๋ ฅ
for i in record:
temp = i.split()
if temp[0] == "Enter":
answer.append(dic[temp[1]] + "๋์ด ๋ค์ด์์ต๋๋ค.")
if temp[0] == "Leave":
answer.append(dic[temp[1]] + "๋์ด ๋๊ฐ์ต๋๋ค.")
else: # Change
continue
3~4: ๋์ ๋๋ฆฌ์ ์ ๊ทผํด์ temp[1] ์ฆ, id์ ํด๋นํ๋ value๊ฐ์ ๊ฐ์ ธ์ ๋ฉ์์ง์ ํจ๊ป answer ๋ฐฐ์ด์ ์ ์ฅ์ํจ๋ค.
5~6: "Leave"๋ "Enter"์ ๋๊ฐ์ด ์งํ
7~8: "Change"๋ ๋ฐ๋ก ์ถ๋ ฅ ๋ฉ์์ง๊ฐ ์์ผ๋ฏ๋ก ๋ฌด์ํ๋ค.
'๐ป ๊ฐ๋ฐ > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋น๋ฐ์ง๋ Python (์นด์นด์ค ๊ธฐ์ถ) (0) | 2021.09.09 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ํํ Python (์นด์นด์ค ๊ธฐ์ถ) (0) | 2021.09.07 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋๋จธ์ง ํ ์ (Python) (0) | 2021.06.24 |
๋ฐฑ์ค 9095: 1,2,3 ๋ํ๊ธฐ (DP) (0) | 2021.05.31 |
๋ฐฑ์ค 10826: ํผ๋ณด๋์น ์ 4 (DP) (0) | 2021.05.31 |