Skip to content

Commit 448c9fb

Browse files
committed
[PGS]성격유형검사하기 / lv1 / 40min
https://school.programmers.co.kr/learn/courses/30/lessons/118666
1 parent 154a32c commit 448c9fb

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
"""
2+
1 - R,T
3+
2 - C,F
4+
3,- J , M
5+
4 - A, N
6+
7+
=> 7 : +3N , 6 : +2N , 5 : +1N 4: 0 , 3 : +A , 2: +2A , 1 : + 3A (비동의)
8+
"""
9+
10+
def solution(survey, choices):
11+
answer = ''
12+
vote = list()
13+
for i in range(len(survey)) :
14+
a = survey[i][0] ; b = survey[i][1] # 비동의 , 동의
15+
target = ''
16+
tmp = choices[i]-4
17+
18+
if tmp > 0 : # 양수 -> 동의
19+
target = b
20+
elif tmp < 0 : # 음수 -> 비동의
21+
target = a
22+
tmp = tmp * (-1)
23+
else : # tmp == 0
24+
continue
25+
26+
# vote에 여부 확인
27+
if len(vote) == 0 : # 초기화
28+
vote.append([target,tmp])
29+
continue
30+
for k in range(len(vote)) :
31+
if vote[k][0] == target : # 있으면 -> 더하기
32+
vote[k][1] += tmp
33+
break
34+
if k >= len(vote)-1 :
35+
# 없으면 -> 업데이트
36+
vote.append([target,tmp])
37+
38+
answer_list = [0,0,0,0]
39+
twin= [["R","C" ,"J" ,"A"] ,["T" , "F" , "M" , "N"]]
40+
for k in range(len(vote)) :
41+
if vote[k][0] in twin[0]: # 음수
42+
answer_list[twin[0].index(vote[k][0])]-= vote[k][1]
43+
elif vote[k][0] in twin[1]: # 양수
44+
answer_list[twin[1].index(vote[k][0])] += vote[k][1]
45+
46+
47+
for j in range(len(answer_list)):
48+
if answer_list[j] > 0 :# 양수
49+
answer+= twin[1][j]
50+
else :# 음수
51+
answer+= twin[0][j]
52+
53+
return answer

0 commit comments

Comments
 (0)