99์ฝํ ์คํฐ๋๋ฅผ ์์ํ๋ค. ๋งค์ฃผ ์,๋ชฉ ์ ๋ 9์์ ๋ชจ์ฌ 11์๊น์ง ์ฃผ์ด์ง ๋ฌธ์ ๋ค์ ๊ทธ ์๋ฆฌ์์ ํ๊ณ , ์คํฐ๋์ฅ๋์ด ํ์ด๋ฅผ ์ค๋ช ํด ์ค๋ค. ์ค๋์ 2022 ์นด์นด์ค ์ธํด์ญ ์ฝ๋ฉ ํ ์คํธ ๋ฌธ์ ์ด๋ค.
๋ฌธ์
๋ฌธ์ ์ถ์ฒ : ํ๋ก๊ทธ๋๋จธ์ค 2022 ์นด์นด์ค ์ธํด์ญ ์ฝ๋ฉํ ์คํธ
๋๋ง์ ์นด์นด์ค ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌ์ง๋ฅผ ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค. ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌ๋ ๋ค์๊ณผ ๊ฐ์ 4๊ฐ ์งํ๋ก ์ฑ๊ฒฉ ์ ํ์ ๊ตฌ๋ถํฉ๋๋ค. ์ฑ๊ฒฉ์ ๊ฐ ์งํ์์ ๋ ์ ํ ์ค ํ๋๋ก ๊ฒฐ์ ๋ฉ๋๋ค.
์งํ ๋ฒํธ ์ฑ๊ฒฉ ์ ํ 1๋ฒ ์งํ ๋ผ์ด์ธํ(R), ํ๋ธํ(T) 2๋ฒ ์งํ ์ฝํ(C), ํ๋ก๋ํ(F) 3๋ฒ ์งํ ์ ์ด์งํ(J), ๋ฌด์งํ(M) 4๋ฒ ์งํ ์ดํผ์นํ(A), ๋ค์คํ(N) 4๊ฐ์ ์งํ๊ฐ ์์ผ๋ฏ๋ก ์ฑ๊ฒฉ ์ ํ์ ์ด 16(=2 x 2 x 2 x 2)๊ฐ์ง๊ฐ ๋์ฌ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, "RFMN"์ด๋ "TCMA"์ ๊ฐ์ ์ฑ๊ฒฉ ์ ํ์ด ์์ต๋๋ค.
๊ฒ์ฌ์ง์๋ ์ด n๊ฐ์ ์ง๋ฌธ์ด ์๊ณ , ๊ฐ ์ง๋ฌธ์๋ ์๋์ ๊ฐ์ 7๊ฐ์ ์ ํ์ง๊ฐ ์์ต๋๋ค.
๋งค์ฐ ๋น๋์ ๋น๋์ ์ฝ๊ฐ ๋น๋์ ๋ชจ๋ฅด๊ฒ ์ ์ฝ๊ฐ ๋์ ๋์ ๋งค์ฐ ๋์ ๊ฐ ์ง๋ฌธ์ 1๊ฐ์ง ์งํ๋ก ์ฑ๊ฒฉ ์ ํ ์ ์๋ฅผ ํ๋จํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ด๋ค ํ ์ง๋ฌธ์์ 4๋ฒ ์งํ๋ก ์๋ ํ์ฒ๋ผ ์ ์๋ฅผ ๋งค๊ธธ ์ ์์ต๋๋ค.
์ ํ์ง ์ฑ๊ฒฉ ์ ํ ์ ์ ๋งค์ฐ ๋น๋์ ๋ค์คํ 3์ ๋น๋์ ๋ค์คํ 2์ ์ฝ๊ฐ ๋น๋์ ๋ค์คํ 1์ ๋ชจ๋ฅด๊ฒ ์ ์ด๋ค ์ฑ๊ฒฉ ์ ํ๋ ์ ์๋ฅผ ์ป์ง ์์ต๋๋ค ์ฝ๊ฐ ๋์ ์ดํผ์นํ 1์ ๋์ ์ดํผ์นํ 2์ ๋งค์ฐ ๋์ ์ดํผ์นํ 3์ ์ด๋ ๊ฒ์ฌ์๊ฐ ์ง๋ฌธ์์ ์ฝ๊ฐ ๋์ ์ ํ์ง๋ฅผ ์ ํํ ๊ฒฝ์ฐ ์ดํผ์นํ(A) ์ฑ๊ฒฉ ์ ํ 1์ ์ ๋ฐ๊ฒ ๋ฉ๋๋ค. ๋ง์ฝ ๊ฒ์ฌ์๊ฐ ๋งค์ฐ ๋น๋์ ์ ํ์ง๋ฅผ ์ ํํ ๊ฒฝ์ฐ ๋ค์คํ(N) ์ฑ๊ฒฉ ์ ํ 3์ ์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
์ ์์์ฒ๋ผ ๋ค์คํ์ด ๋น๋์, ์ดํผ์นํ์ด ๋์์ธ ๊ฒฝ์ฐ๋ง ์ฃผ์ด์ง์ง ์๊ณ , ์ง๋ฌธ์ ๋ฐ๋ผ ๋ค์คํ์ด ๋์, ์ดํผ์นํ์ด ๋น๋์์ธ ๊ฒฝ์ฐ๋ ์ฃผ์ด์ง ์ ์์ต๋๋ค. ํ์ง๋ง ๊ฐ ์ ํ์ง๋ ๊ณ ์ ์ ์ธ ํฌ๊ธฐ์ ์ ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
๋งค์ฐ ๋์๋ ๋งค์ฐ ๋น๋์ ์ ํ์ง๋ฅผ ์ ํํ๋ฉด 3์ ์ ์ป์ต๋๋ค. ๋์๋ ๋น๋์ ์ ํ์ง๋ฅผ ์ ํํ๋ฉด 2์ ์ ์ป์ต๋๋ค. ์ฝ๊ฐ ๋์๋ ์ฝ๊ฐ ๋น๋์ ์ ํ์ง๋ฅผ ์ ํํ๋ฉด 1์ ์ ์ป์ต๋๋ค. ๋ชจ๋ฅด๊ฒ ์ ์ ํ์ง๋ฅผ ์ ํํ๋ฉด ์ ์๋ฅผ ์ป์ง ์์ต๋๋ค. ๊ฒ์ฌ ๊ฒฐ๊ณผ๋ ๋ชจ๋ ์ง๋ฌธ์ ์ฑ๊ฒฉ ์ ํ ์ ์๋ฅผ ๋ํ์ฌ ๊ฐ ์งํ์์ ๋ ๋์ ์ ์๋ฅผ ๋ฐ์ ์ฑ๊ฒฉ ์ ํ์ด ๊ฒ์ฌ์์ ์ฑ๊ฒฉ ์ ํ์ด๋ผ๊ณ ํ๋จํฉ๋๋ค. ๋จ, ํ๋์ ์งํ์์ ๊ฐ ์ฑ๊ฒฉ ์ ํ ์ ์๊ฐ ๊ฐ์ผ๋ฉด, ๋ ์ฑ๊ฒฉ ์ ํ ์ค ์ฌ์ ์์ผ๋ก ๋น ๋ฅธ ์ฑ๊ฒฉ ์ ํ์ ๊ฒ์ฌ์์ ์ฑ๊ฒฉ ์ ํ์ด๋ผ๊ณ ํ๋จํฉ๋๋ค.
์ง๋ฌธ๋ง๋ค ํ๋จํ๋ ์งํ๋ฅผ ๋ด์ 1์ฐจ์ ๋ฌธ์์ด ๋ฐฐ์ด survey์ ๊ฒ์ฌ์๊ฐ ๊ฐ ์ง๋ฌธ๋ง๋ค ์ ํํ ์ ํ์ง๋ฅผ ๋ด์ 1์ฐจ์ ์ ์ ๋ฐฐ์ด choices๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ด๋, ๊ฒ์ฌ์์ ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์งํ ๋ฒํธ ์์๋๋ก return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ 1 โค survey์ ๊ธธ์ด ( = n) โค 1,000 survey์ ์์๋ "RT", "TR", "FC", "CF", "MJ", "JM", "AN", "NA" ์ค ํ๋์ ๋๋ค. survey[i]์ ์ฒซ ๋ฒ์งธ ์บ๋ฆญํฐ๋ i+1๋ฒ ์ง๋ฌธ์ ๋น๋์ ๊ด๋ จ ์ ํ์ง๋ฅผ ์ ํํ๋ฉด ๋ฐ๋ ์ฑ๊ฒฉ ์ ํ์ ์๋ฏธํฉ๋๋ค. survey[i]์ ๋ ๋ฒ์งธ ์บ๋ฆญํฐ๋ i+1๋ฒ ์ง๋ฌธ์ ๋์ ๊ด๋ จ ์ ํ์ง๋ฅผ ์ ํํ๋ฉด ๋ฐ๋ ์ฑ๊ฒฉ ์ ํ์ ์๋ฏธํฉ๋๋ค. choices์ ๊ธธ์ด = survey์ ๊ธธ์ด
choices[i]๋ ๊ฒ์ฌ์๊ฐ ์ ํํ i+1๋ฒ์งธ ์ง๋ฌธ์ ์ ํ์ง๋ฅผ ์๋ฏธํฉ๋๋ค. 1 โค choices์ ์์ โค 7 choices ๋ป
1 ๋งค์ฐ ๋น๋์
2 ๋น๋์
3 ์ฝ๊ฐ ๋น๋์
4 ๋ชจ๋ฅด๊ฒ ์
5 ์ฝ๊ฐ ๋์
6 ๋์
7 ๋งค์ฐ ๋์
์ ์ถ๋ ฅ ์
survey choices result
["AN", "CF", "MJ", "RT", "NA"] [5, 3, 2, 7, 5] "TCMA"
["TR", "RT", "TR"] [7, 1, 3] "RCJA"`
๋ฌธ์ ์ ๊ทผ๋ฒ
1. ์ต์ด ์ ๊ทผ ๋ฐฉ๋ฒ
์ฃผ์ด์ง survey์ choice๋ 1:1 ๋์ ๊ด๊ณ์ด๋ค . "AN" ์ด๋ผ๋ survey๊ฐ ์ฃผ์ด์ง๋ฉด, choice๋ 5๊ฐ ์ฃผ์ด์ง๋ค. 5 ๋ choices์ ๋ฐ๋ฅด๋ฉด ์ฝ๊ฐ ๋์๋ฅผ ์๋ฏธํ๋ค. ๊ทธ๋ฐ๋ฐ ์ด ๋์๊ฐ ์ฑ๊ฒฉ ์ ํ A ๋ฅผ ์๋ฏธํ๋์ง N์ ์๋ฏธํ๋์ง๋ ์๋ฏธํ๋์ง๋ survey๊ฐ "AN"์ธ์ง "NA"์ธ์ง์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค.
์ด ๋ถ๋ถ์ ์ ์ํด์ ํ์ด์ผ ํ๋ค.
๊ฒฐ๊ตญ ๊ฐ์ฅ ๋ง์ ์ ์๋ฅผ ๋ฐ์ ์ ํ์ ๋ฝ์ผ๋ฉด ๋๋ค.๋จ, ๊ฐ์ ์ ์์ผ ๊ฒฝ์ฐ๋ ์ฌ์ ์์ผ๋ก ์์ ์๋ ์ ํ์ ๋ฝ์์ผ ํ๋ค.
result_mapper ๋ผ๋ ๋์
๋๋ฆฌ๋ฅผ ๋ง๋ค์ด์ survey์ ๊ฐ ์์์ ๋ฐ๋ผ ์ ์๋ฅผ ๋งค๊ฒจ์ {"R":[ ์ ํํ ์ ์, ๋ช ๋ฒ ์ ํ์ธ์ง]}
ํํ๋ก ์ ์ฅํ๋ค.
๊ทธ๋ ๊ฒ ๋ชจ๋ choice์ ์ ์๋ฅผ ๋งค๊ธด ํ, ๋ค์ result_mapper๋ฅผ ๋๋ฉด์ ๊ฐ์ฅ ๋์ ์ ์๋ฅผ ๊ฐ์ง ์ ํ์ ๋ฝ์ ๋ด์๋ค.
def solution(survey, choices):
answer = ''
choice_range = [0, 3, 2, 1, 0, 1, 2, 3]
result_mapper ={
"R":[ 0, 1],
"T":[0,1],
"C":[0,2],
"F":[0,2],
"J":[0,3],
"M":[0,3],
"A":[0,4],
"N":[0,4]
}
for i in range(len(survey)):
personality_type=""
if(choices[i] !=4 and choices[i] >4):
#๋์
personality_type=survey[i][1]
result_mapper[personality_type][0] = result_mapper[personality_type][0]+choice_range[choices[i]]
if(choices[i] !=4 and choices[i]<4):
#๋น๋์
personality_type=survey[i][0]
result_mapper[personality_type][0] = result_mapper[personality_type][0]+choice_range[choices[i]]
#๋์ ์ ์ ๋ณ๋ก ๋ฌถ๊ธฐ
keys = list(result_mapper.keys())
for i in range(0,4):
#ํฐ ๊ฐ
if(result_mapper[keys[i*2]][0] == result_mapper[keys[i*2+1]][0]):
sortedType=sorted([keys[i*2], keys[i*2+1]])
answer+=sortedType[0]
continue
if(result_mapper[keys[i*2]][0] > result_mapper[keys[i*2+1]][0]):
#i๋ฒ์งธ๊ฐ ํฌ๋ค
answer+=keys[i*2]
else:
answer+=keys[i*2+1]
return answer
2. ํ์ด์ฌ์ ์๋ฃ๊ตฌ๋ฃ๋ฅผ ์ข ๋ ํ์ฉํ ์ ๊ทผ๋ฒ
์ด 16๊ฐ์ ํ์ ์ ๋ํ ์ ์๋ฅผ ์ ์ฅํ๋ ๋์ ๋๋ฆฌ๋ฅผ ๋ง๋๋๊ฑด ์ฌ์ด๋ฐ, ๊ทธ ํ ์ ํ ๋ณ๋ก 2๊ฐํ์ ์ฉ ๋ฌถ์ด์ ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ด๊ฐ ์ต์ด ์ ๊ทผํ ๋ฐฉ๋ฒ์์๋ ์คํ๋ ค ๋ก์ง์ ๋ ๋ณต์กํ๊ฒ ๋ง๋ ๋ค
zip
์ ์ด์ฉํ์ฌ 4๊ฐ์ง ์ฉ ๋ฌถ์ด ๋ ๊ทธ๋ฃน์ผ๋ก ๋๋์ด ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ๊ทผํ๋ฉด ๋ ๊ฐ๋จํ๊ฒ ํ ์ ์๋ค.
RFJA
์ TFMN
์ผ๋ก ๋๋์ด zip
์ ์ด์ฉํ์ฌ ๋ฌถ์ด ์คํ ์ํํ๋ฉด,
์ํํ ๋ R์ ์ ์์ T์ ์ ์๋ฅผ ๋น๊ตํ์ฌ ๋์ ์ ์๋ฅผ ๊ฐ์ง ์ ํ์ ์ ํํ๋ฉด ๋๋ค.
from collections import defaultdict
def solution(survey, choices):
answer = ''
result_mapper = defaultdict(int)
for i in range(len(survey)):
if(choices[i] !=4 and choices[i] >4):
#๋์
result_mapper[survey[i][1]]+=choices[i] - 4
if(choices[i] !=4 and choices[i]<4):
#๋น๋์
result_mapper[survey[i][0]]+= 4-choices[i]
#๋์ ์ ์ ๋ณ๋ก ๋ฌถ๊ธฐ
RCJA, TFMN = ["R","C","J","A"],["T","F","M","N"]
for type_a, type_b in zip(RCJA, TFMN):
if result_mapper[type_a]>=result_mapper[type_b]:
answer+=type_a
else:
answer+=type_b
return answer