두 수의 연산값 비교하기
연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
- 12 ⊕ 3 = 123
- 3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 2 * a * b 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 2 * a * b가 같으면 a ⊕ b를 return 합니다.
def combine_numbers(a, b):
# 연산 ⊕를 구현하는 함수
return int(str(a) + str(b))
def solution(a, b):
# a ⊕ b 계산
ab_combined = combine_numbers(a, b)
# 2 * a * b 계산
twice_a_times_b = 2 * a * b
# a ⊕ b와 2 * a * b 중 큰 값을 반환
return max(ab_combined, twice_a_times_b)
# 예시 테스트
print(solution(12, 3)) # 출력: 36
print(solution(3, 12)) # 출력: 312
이걸 간단하게 이렇게 표현할 수 있다. Max 함수를 이용해서 푸는 것인데 그 안에는 비교할 대상 두 개가 들어가고 그걸 int 정수로 바꾼 후 비교하는 것이다.
def solution(a, b):
return max(int(str(a) + str(b)), 2 * a * b)
두수 합치고 비교하기
연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다. 12 ⊕ 3 = 123 3 ⊕ 12 = 312 양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요. 단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.
이것을 구현하는 방식은 다양할 수 있는데 먼저 쉬운 버전으로 보고, 자세한 버전을 보자. 위에서 한 것과 같이 간단하게 문자열로 받은 두 개를 비교하도록 가로 안에 넣고 그걸 int 정수로 바꾼 후 가로 밖에서 Max 함수를 이용해 비교하는 것이다.
def solution(a,b):
return max(int(str(a) + str(b)), (str(b) + str(a)))
이렇게 간단하게 푼 사람도 있었다. Str으로 바꿀수도 있지만 창의적으로 생각하면 최종단계에서 f로 출력할 때 어떤 식으로 출력하고 싶은지를 f"{a}{b}" 형태로 문자열 나열. 그러면 나열된 최종형태를 Max로 비교 후 int 사용해 정수로 바꾼다.
def solution(a, b):
return int(max(f"{a}{b}", f"{b}{a}"))
아래와 같이 엄청 길게도 할수있다. 하지만 코딩은 최대한 이 애 하고 싶고 간단히 하는 게 좋은 것 같다.
def concatenate_and_compare(a, b):
# ⊕ 연산을 수행하여 두 수를 붙여서 반환
ab = int(str(a) + str(b))
ba = int(str(b) + str(a))
return ab, ba
def solution(a, b):
# 주어진 두 수에 대해 ⊕ 연산을 수행하여 결과를 비교
ab, ba = concatenate_and_compare(a, b)
if ab >= ba:
return ab
else:
return ba
합치는 방식
만약 apple pen 이라는 인풋이 있다고 생각해 보자. 공백을 기준으로 a 값에는 apple 그리고 b 값에는 pen을 넣어서 붙여준다고 생각해 보자. 위에서는 두 가지 방식을 배웠다. 하나는 str으로 만들어 문자로 받고, 이후에 정수로 출력되게 Int로 넣는 것. 혹은 f 이용해서 f"{a}{b}"같은 형태로 출력하는 것. 그리고 정수로 Int 함수 이용해 바꾸는 것
apple pen
applepen
첫줄부터 이해가 안될 수 있다. 자세히 뜯어보면 입력받고, strip 사용해 모든 공백 없애고, split 사용해 공백(' ') 기준으로 분리하기
- input(): 사용자로부터 입력을 받습니다. 이 함수는 사용자가 입력한 값을 문자열로 반환합니다.
- .strip(): 입력된 문자열의 양쪽에 있는 공백을 제거합니다. 사용자가 입력한 문자열에서 양쪽에 있는 모든 공백을 없앱니다.
- .split(' '): 문자열을 공백을 기준으로 분리합니다. 공백을 기준으로 분리된 부분 문자열들은 리스트에 담겨 반환됩니다.
- str1, str2 = ...: 분리된 부분 문자열들을 str1과 str2에 순서대로 할당합니다. 입력된 문자열을 공백을 기준으로 분리한 결과 중 첫 번째 부분 문자열이 str1에, 두 번째 부분 문자열이 str2에 할당됩니다.
이렇게 하면 변수 str1과 str2에는 입력된 문자열에서 양쪽 공백을 제거한 후, 공백을 기준으로 분리된 부분 문자열이 할당된다.
str1, str2 = input().strip().split(' ')
print(str1 + str2)