728x90
반응형
SMALL
Programmers 레벨 0_코딩 기초 트레이닝 문제 풀이
https://school.programmers.co.kr/learn/challenges/training?order=recent
코딩 기초 트레이닝 | 프로그래머스 스쿨
프로그래밍 언어를 처음 접하거나 프로그래밍 언어에 익숙해지고 싶다면? 코딩 역량을 탄탄하게 길러주는 코딩 기초 트레이닝으로 차근차근 코딩에 대한 기초 감각을 길러 보세요.
school.programmers.co.kr
풀이 날짜 : 2023-09-21
소요 시간 : 5min
문제 설명
이 문제에서 두 정수 배열의 대소관계를 다음과 같이 정의합니다.
- 두 배열의 길이가 다르다면, 배열의 길이가 긴 쪽이 더 큽니다.
- 배열의 길이가 같다면 각 배열에 있는 모든 원소의 합을 비교하여 다르다면 더 큰 쪽이 크고, 같다면 같습니다.
두 정수 배열 arr1과 arr2가 주어질 때, 위에서 정의한 배열의 대소관계에 대하여 arr2가 크다면 -1, arr1이 크다면 1, 두 배열이 같다면 0을 return 하는 solution 함수를 작성해 주세요.
나의 풀이
def solution(arr1, arr2):
if len(arr1) == len(arr2) :
return 0 if sum(arr1) == sum(arr2) else (1 if sum(arr1) > sum(arr2) else -1)
else :
return 1 if len(arr1) > len(arr2) else -1
길이가 같을 때, 다를 때를 먼저 구분하고, 그 안에서 2차적으로 구분하여 결과를 출력했다. 뭔가 한 줄로 쓸 수 있는 방법이 있을 것 같은데 더 연습해야겠다.
다른 풀이
def solution(arr1, arr2):
return (len(arr1) > len(arr2)) - (len(arr2) > len(arr1)) or (sum(arr1) > sum(arr2)) - (sum(arr2) > sum(arr1))
arr1이 더 길거나 합이 크면 1(True) - 뒷부분은 0(False) 그러므로 1-0. 반대의 경우는 0-1, 같은 경우는 둘 다 0이므로 0-0을 출력
728x90
반응형
LIST
'Coding Study > Programmers (Python)' 카테고리의 다른 글
[프로그래머스/파이썬] Lv.0 배열의 길이에 따라 다른 연산하기 (6') (0) | 2023.09.21 |
---|---|
[프로그래머스/파이썬] Lv.0 문자열 묶기 (7') (0) | 2023.09.21 |
[프로그래머스/파이썬] Lv.0 배열의 길이를 2의 거듭제곱으로 만들기 (60') (0) | 2023.09.20 |
[프로그래머스/파이썬] Lv.0 무작위로 K개의 수 뽑기 (30') (0) | 2023.09.20 |
[프로그래머스/파이썬] Lv.0 배열 만들기 6 (5') (0) | 2023.09.20 |