Data house
[python] 4개 숫자들 중 중복된 숫자마다 처리 - count(), index() 본문
Computer Knowledge/코테 대비 오답노트
[python] 4개 숫자들 중 중복된 숫자마다 처리 - count(), index()
l._.been 2023. 5. 14. 23:41728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/181916#qna
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
핵심 능력
python 메소드 중 count()와 index()를 알면 쉽게 풀 수 있는 문제였다.
- count(): 리스트 중에서 얼마나 중복되는지 나타냄
- index(): 매개변수로 넘어온 수의 인덱스를 반환
인상적인 풀이
def solution(a, b, c, d):
arr = [a,b,c,d]
counts = [arr.count(i) for i in arr] # 중복 리스트 생성
# all same number
if max(counts) == 4:
return 1111*a
# three same numbers and the other
elif max(counts) == 3:
p = arr[counts.index(3)] # 같은 수 3개의 인덱스
q = arr[counts.index(1)] # 다른 수 1개의 인덱스
return (10*p+q)**2
# two pair of two same numbers
elif max(counts) == 2: # 같은 수 2개
if min(counts) == 2: # 같은 수 2개가 2쌍 있다면
return (a+c)*abs(a-c) if a==b else (a+b)*abs(a-b)
# two same numbers and another and the other
else:
p = arr[counts.index(2)] # 같은 수 2개 있는 애의 인덱스
return (a*b*c*d)/p**2 # 서로 다른 수끼리 곱(같은 수는 분모로 빼줌)
# differenct numbers:
else:
return min(arr) # 가장 작은 수
'Computer Knowledge > 코테 대비 오답노트' 카테고리의 다른 글
[python] 부분문자열 - 역순 풀이, rindex( ), rfind( ) (0) | 2023.05.19 |
---|---|
[python] 문자열 여러번 뒤집기 - slicing (0) | 2023.05.15 |
[python] 접두사, 접미사인지 알아보기 - startwith, endwith (0) | 2023.05.12 |
[python] 공백 제거 & 문자열 앞 또는 뒤 특정 문자 제거 (0) | 2023.05.12 |
[python] str.replace() (0) | 2023.05.08 |