https://school.programmers.co.kr/learn/courses/30/lessons/120835
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
내 답안 :
1
2
3
4
5
6
7
8
|
def solution(emergency):
answer = []
priority = sorted(emergency, reverse = True) # emergency를 내림차순 정렬해서 priority에 넣음
for eInEmer in emergency: # emergency의 요소에 차례로 접근하면서
for eInPri in priority: # priority의 요소에도 차례로 접근
if eInPri == eInEmer: # 만약 두 요소의 값이 같으면
answer.append(priority.index(eInEmer)+1) # 해당 요소의 인덱스값에 1 더해서 answer에 값 추가
return answer
|
cs |
꽤 시간 들여 고민함...
개선안 :
1
2
|
def solution(emergency):
return [sorted(emergency, reverse=True).index(e) + 1 for e in emergency]
|
cs |
내 풀이와 방식은 똑같은데, comprehension 구조를 사용해 훨씬 짧은 코드가 된다.
파이썬 장점이 코드가 짧은 것도 있으니 이런식으로 작성하는것도 연습해야겠다.
'프로그래밍 > Python' 카테고리의 다른 글
프로그래머스_python lv0. 개미 군단 (0) | 2023.02.12 |
---|---|
프로그래머스_python lv0. 순서쌍의 개수 (0) | 2023.02.06 |
프로그래머스_python lv0. 외계행성의 나이 (1) | 2023.02.02 |
프로그래머스_python lv0. 배열 자르기 (0) | 2023.02.01 |
프로그래머스_python lv0. 짝수의 합 (0) | 2023.01.30 |