본문 바로가기
알고리즘/CodeUp PS

[CodeUp][Python] 1205번 : 최댓값

by 빛밤하늘 2021. 8. 27.
반응형

밑의 링크는 CodeUp에서의 문제 링크입니다.

문제는 링크를 통해서 직접 봐주시길 바랍니다.

 

최댓값

실수 a, b가 입력된다. ( a와 b의 계산결과는 모두 int범위 이내이고, 계산이 불가능한 경우는 입력되지 않는다.)

codeup.kr

 

 

 

주의해야 할 점

1. map, split을 사용하는 입력 방식

실수나 정수인 여러 값들이 입력값일 때,

split 메서드를 사용해 공백이나 어떤 문자를 기준으로 입력값을 여러 값들로 분리하고,

map 내장 함수로 각각의 값들을 int형이나 float형으로 정수, 실수 자료형으로 변환하는 기법은 매우 많이 쓰입니다.

코드 이해부터 하고 나면 다른 문제에서도 외운 듯이 사용해봅시다.

a, b = map(float, sys.stdin.readline().split())

 

2. 덧셈과 곱셈의 피연산자 순서

뺄셈, 나눗셈, 제곱은 두 피연산자의 순서를 바꾸면 다른 값이 나올 수 있는데,

덧셈과 곱셈은 두 피연산자의 순서를 바꿔도 똑같은 결과가 나옵니다.

굳이 또 계산할 필요 없습니다.

 

3. 소수점 이하 6자리로 출력

출력할 최댓값은 무조건 소수점 이하 6자리로 맞춰서 출력해야 합니다.

예제처럼 최댓값이 3으로 딱 떨어진다고 해도 3.000000으로 출력해야 합니다.

 

예제 설명

1. 첫 번째 예제

- 입력

1 2

 

- 출력

3.000000

 

- 설명

입력한 두 실수는 1, 2입니다.

모든 연산을 해보면 다음과 같습니다.

 

  • 1 + 2 = 3
  • 1 - 2 = -1
  • 1 * 2 = 2
  • 1 / 2 = 0.5
  • 1^2 = 1
  • 2 + 1 = 3
  • 2 - 1 = 1
  • 2 * 1 = 2
  • 2 / 1 = 2
  • 2^1 = 2

연산 결과 중 최댓값은 3입니다.

소수점 이하 6자리로 출력해야 하므로, 3.000000을 출력합니다.

 

 

생각한 풀이 과정

두 실수를 입력하면 덧셈, 뺄셈, 곱셈, 나눗셈, 제곱을 입력한 순서대로와 반대 순서대로 모두 계산하고 

리스트 변수에 넣어줍니다.

다만, 덧셈, 곱셈은 순서에 상관없이 같은 결과가 나오므로 한 번만 계산합니다.

리스트에 있는 값들 중 최댓값을 찾습니다.

그 최댓값을 소수점 이하 6자리로 만들고, 출력합니다.

 

제출한 파이썬 코드

# readline을 사용하기 위해 import합니다.
from sys import stdin


# 실수 a, b를 공백으로 구분해 입력합니다.
# 각각 float형으로 변환합니다.
a, b = map(float, stdin.readline().split())
# a+b, a-b, a*b, a/b, a^b, b-a, b/a, b^a를 계산하고 리스트 변수에 넣어줍니다.
# b+a, b*a는 각각 a+b, a*b와 같으므로 굳이 계산할 필요가 없습니다.
operations = [a + b, a - b, a * b, a / b, a ** b, b - a, b / a, b ** a]
# operations에서의 최댓값을 구하고, 소수점 이하 6자리로 만들어 변수에 저장합니다.
max_num = "%.6f" % max(operations)

# 소수점 이하 6자리인 최댓값을 출력합니다.
print(max_num)

 

제출 결과

CodeUp 1205번 : 최댓값에서 코드 제출 결과
CodeUp 1205번 : 최댓값에서 코드 제출 결과

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

※ 공감 버튼과 구독 버튼도 잊지 말고 꾹 눌러주시면 감사하겠습니다~👍👍

반응형

댓글