본문 바로가기
취준일기/코딩테스트

프로그래머스 - 2주차

by zooonique 2021. 8. 23.
반응형

이 글을 통해 2차원 리스트의 X,Y축을 바꾸는 법을 정리하려고 한다.

 

문제 소개는 귀찮으니까, 사진으로 대체

 

scores가 2차원 배열로 주어지고 scores[0]에는 0번의 사람이 평가한 점수들이 있다

예를들어 scores[0][0]은 0번이 0번을 평가한 점수, scores[0][3]은 0번이 3번을 평가한 점수

 

문제를 풀기위해서는 scores[0]을 0번이 받은 점수로 바꾸면 편하다.

예를들어 scores[0][0]은 0번이 0번을 평가한 점수, scores[0][3]은 3번이 0번을 평가한 점수

 

scores의 X,Y축을 바꾸기위해서,

 

Numpy의 transpose함수를 사용했다.

 

scores = np.transpose(scores)

이후에 max와 min을 활용하여 최대, 최소를 구하고 본인을 평가한 점수가 최대, 최소인 경우를 필터링했다.

 

여기서 주의해야할점은 본인을 평가한 점수가 최대, 최소여도 다른 사람도 그 점수로 평가했다면 필터링하지 않는다.

 

그래서 count함수를 사용하려고 했는데, 작동이 되지않았다.

 

다른 스터디원은 scores.tolist()로 해결했고, 나는 무식하게 for문을 또 돌렸다.

 

추가적으로 numpy는 코딩테스트에서 허용되지않는 경우가 많다고하여 numpy를 활용하지않고,

X,Y축을 바꾸는 방법을 정리한다.

더보기

# numpy를 사용하지 않고 전치하는 방법

A = [[1,2,3],[1,2,3]]

B = [list(x) for x in zip(*A)]

C = list(map(list, zip(*A)))

 

반응형