2022 KAKAO TECH INTERNSHIP - Lv1.
๐ต ๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/118666
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐ ํ์ด
choice์ ๋ฐ๋ผ ๊ฐ ์ ํ๋ณ ์ ์๊ฐ ์ ์๋์ด ์์ผ๋ ํด์ ํ ์ด๋ธ์ ์ฌ์ฉํ๋ฉด ๋นจ๋ฆฌ ์ฐพ์ ์ ์์ ๊ฑฐ๋ผ ์๊ฐํ์ต๋๋ค.
์ ํ๋ ์ ์์ ๋ฐ๋ผ ์ ํ๋ณ ์ ์๋ฅผ ์ป์ด์ฃผ๋ ํจ์ (getTypeScore), ๊ฐ์ ์์ญ์์์ ๋ผ์ด๋ฒ ๋ฌธ์์ ์ด์ ์ด ์๋ก ๊ฐ์ผ๋ฉด ์ฌ์ ์์ผ๋ก ๋ ์์ ๋ฌธ์๋ฅผ ์ ํํ๋ผ๊ณ ๋์ด์์ผ๋ ์ด๋ฅผ ์ํ ํจ์ (getSmallerDictLetter), ๋ผ์ด๋ฒ ๋ฌธ์์ ์ด์ ์ ๋น๊ตํด ์ ํ์ ์ ํํ๋ ํจ์ (getBiggerScoreLetter), ๋ง์ง๋ง์ผ๋ก ์ด๋ฅผ ํฉํด ์ต์ข ์ฑ๊ฒฉ ์ ํ์ ๋ฆฌํดํ๋ ํจ์ (getCHARACTER)๋ฅผ ๋๋ ์์ฑํ์ต๋๋ค.
๐ก ํ์ด ์ฝ๋๋ ์๋์ ๊ฐ์ต๋๋ค.
# ์ ํ๋ ์ ์ ๋ฐ์ผ๋ฉด ๊ฐ๊ฐ ์ ์ ๋ฆฌํดํด์ฃผ๋ ํจ์
def getTypeScore(choice):
type1Score = 0
type2Score = 0
score = {1: 3, 2: 2, 3: 1, 5: 1, 6: 2, 7: 3}
if 1 <= choice <=3:
type1Score += score[choice]
if 5 <= choice <=7:
type2Score += score[choice]
return type1Score, type2Score
# ์์คํค๊ฐ์ผ๋ก ๋ ์์ ๋ฌธ์๋ฅผ ๋ฆฌํดํ๋ ํจ์ (CHARACTER ์ ์ ๊ฐ์ ๊ฒฝ์ฐ ํ๋ณ์ ์ํจ)
def getSmallerDictLetter(a, b):
return a if ord(a) < ord(b) else b
# ๊ฐ์ด ๋ ํฐ ๋ฌธ์ ๋ฆฌํด
def getBiggerScoreLetter(char1, value1, char2, value2):
if value1 == value2:
return getSmallerDictLetter(char1, char2)
if value1 > value2:
return char1
return char2
# ๊ฐ ๋น๊ตํด ์ฑ๊ฒฉ์ ํ ๋ฌธ์ ๋ฆฌํดํด์ฃผ๋ ํจ์
def getCHARACTER(dict):
result = ""
result += getBiggerScoreLetter('R', dict['R'], 'T', dict['T'])
result += getBiggerScoreLetter('C', dict['C'], 'F', dict['F'])
result += getBiggerScoreLetter('J', dict['J'], 'M', dict['M'])
result += getBiggerScoreLetter('A', dict['A'], 'N', dict['N'])
return result
# ๐ ์ต์ข
solution ํจ์
def solution(survey, choices):
CHARACTER = {'R': 0, 'T': 0, 'C': 0, 'F': 0, 'J': 0, 'M': 0, 'A': 0, 'N': 0}
for i in range(len(survey)):
type1, type2 = survey[i][0], survey[i][1]
type1Score, type2Score = getTypeScore(choices[i])
CHARACTER[type1] += type1Score
CHARACTER[type2] += type2Score
return getCHARACTER(CHARACTER)