728x90
๋ฐ์ํ
๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/118666?language=python3
ํ์ด
1. ์ ์ฅ ์ ์ ๋์ ๋๋ฆฌ
# ์ฑ๊ฒฉ ์ ํ๋ณ ์ ์๋ฅผ ์ ์ฅํ ๋์
๋๋ฆฌ
scoreMap = {'R':0, 'T':0, 'C':0, 'F':0, 'J':0, 'M':0, 'A':0, 'N':0}
- scoreMap์ ๊ฐ ์ฑ๊ฒฉ ์ ํ์ ํค๋ก ํ๊ณ , ํด๋น ์ฑ๊ฒฉ ์ ํ์ ์ ์๋ฅผ ๊ฐ์ผ๋ก ๊ฐ์ง๋ ๋์ ๋๋ฆฌ์ ๋๋ค.
2. ์ ์ ๊ณ์ฐ
for i in range(len(survey)):
disagree = survey[i][0] # ๋น๋์ ์ ์ ์๋ฅผ ๋ฐ๋ ์ฑ๊ฒฉ ์ ํ
agree = survey[i][1] # ๋์ ์ ์ ์๋ฅผ ๋ฐ๋ ์ฑ๊ฒฉ ์ ํ
if choices[i] < 4: # ๋น๋์ ์ชฝ ์ ํ
scoreMap[disagree] += 4 - choices[i]
elif choices[i] > 4: # ๋์ ์ชฝ ์ ํ
scoreMap[agree] += choices[i] - 4
- for๋ฌธ์ ํตํด ๊ฐ ์ง๋ฌธ๊ณผ ์ ํ์ง๋ฅผ ํ์ธํฉ๋๋ค.
- ์ ํ์ง๊ฐ 1~3(๋น๋์)์ ํด๋นํ๋ ๊ฒฝ์ฐ, disagree์ ์ ์๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์๋ฅผ ๋ค์ด, choices[i] ๊ฐ 1์ผ ๊ฒฝ์ฐ ๋น๋์ 3๊ฐ์ ์ฃผ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ 4-1 ์ฆ, 4- choices[i] ๋ก ์ฐ์ฐํฉ๋๋ค.
- ๋ง์ฐฌ๊ฐ์ง๋ก ์ ํ์ง๊ฐ 5~7(๋์)์ธ ๊ฒฝ์ฐ, choices[i]๊ฐ 5์ผ ๊ฒฝ์ฐ ๋์ 1๊ฐ์ ์ฃผ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ choices[i] - 4๋ก ์ฐ์ฐํฉ๋๋ค.
3. ์ต์ข ์ฑ๊ฒฉ ์ ํ ์ ํ
# ์ต์ข
์ฑ๊ฒฉ ์ ํ ์ ํ
answer.append('T' if scoreMap['T'] > scoreMap['R'] else 'R')
answer.append('F' if scoreMap['F'] > scoreMap['C'] else 'C')
answer.append('M' if scoreMap['M'] > scoreMap['J'] else 'J')
answer.append('N' if scoreMap['N'] > scoreMap['A'] else 'A')
- ๊ฐ ์งํ์์ ์ ์๋ฅผ ๋น๊ตํ์ฌ ๋ ๋์ ์ ์๋ฅผ ๊ฐ์ง ์ฑ๊ฒฉ ์ ํ์ ์ ํํฉ๋๋ค.
- ๋ง์ฝ ์ ์๊ฐ ๊ฐ๋ค๋ฉด ์ฌ์ ์์ผ๋ก ๋น ๋ฅธ ์ฑ๊ฒฉ ์ ํ์ด ์ ํ๋๋๋ก ์ธํ ํฉ๋๋ค.
์ต์ข ์ฝ๋
def solution(survey, choices):
answer = []
# ์ฑ๊ฒฉ ์ ํ๋ณ ์ ์๋ฅผ ์ ์ฅํ ๋์
๋๋ฆฌ
scoreMap = {'R':0, 'T':0, 'C':0, 'F':0, 'J':0, 'M':0, 'A':0, 'N':0}
for i in range(len(survey)):
disagree = survey[i][0] # ๋น๋์ ์ ์ ์๋ฅผ ๋ฐ๋ ์ฑ๊ฒฉ ์ ํ
agree = survey[i][1] # # ๋์ ์ ์ ์๋ฅผ ๋ฐ๋ ์ฑ๊ฒฉ ์ ํ
if choices[i] < 4: # ๋น๋์ ์ชฝ ์ ํ
scoreMap[disagree] += 4 - choices[i]
elif choices[i] > 4: # ๋์ ์ชฝ ์ ํ
scoreMap[agree] += choices[i] - 4
# ์ต์ข
์ฑ๊ฒฉ ์ ํ ์ ํ
answer.append('T' if scoreMap['T'] > scoreMap['R'] else 'R')
answer.append('F' if scoreMap['F'] > scoreMap['C'] else 'C')
answer.append('M' if scoreMap['M'] > scoreMap['J'] else 'J')
answer.append('N' if scoreMap['N'] > scoreMap['A'] else 'A')
return ''.join(answer)
728x90
๋ฐ์ํ