https://school.programmers.co.kr/learn/courses/30/lessons/118666?language=python
zip()
파이썬의 zip() 내장 함수로 데이터 엮기
>>> numbers = [1, 2, 3]
>>> letters = ["A", "B", "C"]
>>> for pair in zip(numbers, letters):
... print(pair)
...
(1, 'A')
(2, 'B')
(3, 'C')
위와 같이 zip() 함수를 사용하면 마치 옷의 지퍼를 올리는 것 처럼 양 측에 있는 데이터를 하나씩 차례로 짝을 지어줍니다.
병렬 처리도 가능
>>> for number, upper, lower in zip("12345", "ABCDE", "abcde"):
... print(number, upper, lower)
...
1 A a
2 B b
3 C c
4 D d
5 E e
zip, 사전 변환
zip() 함수를 이용하면 두 개의 리스트나 터플 부터 쉽게 사전(dictionary)을 만들 수 있습니다. 키를 담고 있는 리스트와 값을 담고 있는 리스트를 zip() 함수에 넘긴 후, 그 결과를 다시 dict() 함수에 넘기면 됩니다.
>>> keys = [1, 2, 3]
>>> values = ["A", "B", "C"]
>>> dict(zip(keys, values))
{1: 'A', 2: 'B', 3: 'C'}
문제에서 봐야할 부분
다른 해설 참고
def solution(survey, choices):
answer = ''
a={'R':0, 'T':0, 'C':0, 'F':0, 'J':0, 'M':0, 'A':0, 'N':0}
for i,j in zip(survey, choices):
if j<4:
a[i[0]]+=4-j
else:
a[i[1]]+=j-4
t=[i for i in a.keys()]
for i in range(0,8,2):
if a[t[i]]>=a[t[i+1]]:
answer+=t[i]
else:
answer+=t[i+1]
return answer
survey= ["AN", "CF", "MJ", "RT", "NA"]
choices= [5, 3, 2, 7, 5]
my_dict = {"RT":0,"CF":0,"JM":0,"AN":0}
for A,B in zip(survey,choices):
if A not in my_dict.keys():
A = A[::-1]
my_dict[A] -= B-4
else:
my_dict[A] += B-4
result = ""
for name in my_dict.keys():
if my_dict[name] > 0:
result += name[1]
elif my_dict[name] < 0:
result += name[0]
else:
result += sorted(name)[0]
result
최종 작성 코드
>>> def solution(survey, choices):
... a = {"R":0,"T":0,"C":0,"F":0,"J":0,"M":0,"A":0,"N":0}
... answer = ""
... #점수 계산
... for x,y in zip(survey,choices):
... if y > 4: a[x[1]] += y-4
... elif y < 4: a[x[0]] += 4-y
... # 성격분류
... answer+='R' if a['R']>=a['T'] else 'T'
... answer+='C' if a['C']>=a['F'] else 'F'
... answer+='J' if a['J']>=a['M'] else 'M'
... answer+='A' if a['A']>=a['N'] else 'N'
... return answer
...
>>> s= ["AN", "CF", "MJ", "RT", "NA"]
>>> c= [5, 3, 2, 7, 5]
>>> solution(s, c)
'TCMA'
728x90
'기타 > Coding test' 카테고리의 다른 글
[Python] 이코테 A. 코딩테스트 문법 정리 (0) | 2022.08.31 |
---|---|
[Python] 코딩테스트에서 요구하는 자료구조와 알고리즘 (0) | 2022.08.19 |
[Python] 이코테 Coding test (2) (0) | 2022.07.28 |
[Python] 이코테 Coding test (1) (0) | 2022.07.27 |
[Coding test] 코딩 테스트 준비를 돕는 다양한 플랫폼 (0) | 2022.07.21 |