level0_flag에 따라 다른 값 반환하기

2024. 6. 22. 21:32파이썬_알고리즘(코딩테스트)/level0

 

 

 

내가 제출한 코드

def solution(a, b, flag):
    return a + b if flag == True else a - b

 

삼항 연산자를 사용하여 한줄로 조건에 따라 다른 값을 반환할 수 있는 식을 사용하였다.

<값1> if <조건> else <값2>

이 표현식은 <조건>이 True일 때 <값1>을 반환하고, <조건>이 False일 때 <값2>를 반환한다.

 

위에 제출한 코드에서 다시보면 flag가 True일경우 a+b 값을 반환하고 flag가 False일 경우 a-b 값을 반환한다.

 

 

 

 

 

 

 

다른사람이 제출한 코드

solution=lambda a,b,f:[a-b,a+b][f]

 

  • lambda a, b, f :  a, b, f를 매개변수로 하는 람다 함수를 정의한다.
  • [a - b, a + b] : 리스트를 만든다. 첫 번째 요소는 a - b, 두 번째 요소는 a + b 이다.
  • [f]: f가 인덱스 역할을 한. f가 0이면 a - b를 선택하고, f가 1이면 a + b를 선택한다.

따라서, f가 거짓(False)일 때는 0으로 평가되어 a - b를 반환하고, f가 참(True)일 때는 1으로 평가되어 a + b를 반환한다.

 

 

여기서! lamda함수란 ?

보통 함수는 def 키워드를 사용하여 이름을 붙여 정의하지만, 람다 함수는 한 줄로 간단하게 함수를 정의할 때 유용하다.

람다 함수의 기본 문법은 

lambda 매개변수들: 표현식

 

 

# 두 숫자를 더하는 람다 함수
add = lambda x, y: x + y
print(add(2, 3))  # 출력: 5

 

 

람다 함수의 사용 목적은?

  1. 간단한 함수 정의: 한 줄로 간단히 표현할 수 있는 함수를 정의할 때 사용
  2. 일회성 함수: 한 번만 사용할 함수를 정의할 때 사용
  3. 함수 인수로 사용: 람다 함수를 다른 함수의 인수로 전달할 때 사용. 예를 들어, map, filter, reduce 함수와 함께 자주 사용된다.

 

# 리스트의 각 요소에 2를 곱하는 예제
numbers = [1, 2, 3, 4, 5]
doubled = list(map(lambda x: x * 2, numbers))
print(doubled)  # 출력: [2, 4, 6, 8, 10]

위 코드에서 map 함수는 리스트의 각 요소에 대해 람다 함수를 적용한다. 결과적으로 각 요소에 2를 곱한 값을 가지는 새로운 리스트가 생성된다.

 

 

# 학생 리스트를 점수를 기준으로 정렬하는 예제
students = [('홍길동', 85), ('김철수', 92), ('이영희', 78)]
students_sorted = sorted(students, key=lambda student: student[1])
print(students_sorted)  # 출력: [('이영희', 78), ('홍길동', 85), ('김철수', 92)]

위 코드에서 sorted 함수는 학생들의 점수를 기준으로 리스트를 정렬한다. 람다 함수는 각 학생의 점수를 반환하여 정렬 기준으로 사용된다.

'파이썬_알고리즘(코딩테스트) > level0' 카테고리의 다른 글

level0_n의 배수  (0) 2024.06.26
level0_공배수  (0) 2024.06.25
level0_이어 붙인 수  (0) 2024.06.19
level0_마지막 두 원소  (0) 2024.06.17
level0_수 조작하기1  (1) 2024.06.16