일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 파이썬 세 자리 곱셈
- 백준 2309
- 백준 1008
- Python Hello World
- 백준 10998
- Python 나머지
- 백준 사칙연산
- 파이썬 곱셈
- 백준 2557
- Hello World
- python
- Python 평균
- 백준 3046
- 파이썬 평균
- 백준 1001
- 백준 일곱 난쟁이
- Python 세 자리 곱셈
- 백준 10430
- Python 곱셈
- 백준 Python
- 백준 2588
- 파이썬
- 파이썬 나머지
- 백준 1000
- 백준 파이썬
- 백준 2309 파이썬
- 백준
- 백준 10869
- Python 사칙연산
- Today
- Total
코드 발전소
[백준 문제집][Python 배우기 (1~50)][3046] R2(평균) 본문
이 글에서 살펴볼 문제는 백준 3046번입니다.
주소는 아래와 같습니다.
https://www.acmicpc.net/problem/3046
automata님의 문제집, "Python 배우기 (1~50)"의 10번 문제입니다.
1. 문제 이해
해당 문제는 다음과 같습니다.
문제가 생각보다 깁니다만,
잠시 문제를 살펴보면,
"사칙연산을 이용해 평균을 구하는 방정식을 완성하는 문제"임을 알 수 있습니다.
문제의 시간 제한, 메모리 제한은 다음과 같습니다.
문제의 입력과 출력 조건은 다음과 같습니다.
문제에서 제시된 예제 입출력은 다음과 같습니다.
2. 어떻게 해결할 것인가?
문제가 길었지만, 사실 별 내용은 없었습니다.
문제를 간단하게 요약하자면, 두 정수(자연수)의 평균을 구하는 방정식을 완성하는 문제입니다.
두 정수의 평균을 구하는 방법은 모두들 아실테니,
이를 바로 수식으로 옮겨보겠습니다.
두 정수 int1과 int2를 2로 나눈 값이 mean, 즉 두 수의 평균이라는 것은 모두들 알고 계실겁니다.
문제의 핵심은, int1의 값과 mean의 값을 아는 상태에서 int2를 구하는 프로그램을 작성하는 것입니다.
따라서 위의 수식을 int1과 int2에 대한 식에서, int1과 mean에 대한 식으로 바꾸면,
int2를 구하는 방정식을 세울 수 있게 됩니다.
int2를 구하는 방정식은 다음과 같습니다.
너무 쉬운 과정이니, 과정은 생략했습니다.
이제 int2를 구할 수 있으니, 입력을 어떻게 받을지와 출력을 어떻게 할지만 선택하면 됩니다.
예제 입출력을 보면,
입력은 공백을 기준으로 두 정수를 받아주어야 하므로, input().split() 함수를 사용하면 될 것이고
출력은 print() 함수의 괄호 안에 위에서 구한 int2를 구하는 방정식을 넣어주기만 하면 되겠습니다.
3. 문제 해결
우선, input().split() 함수를 이용해 첫 번째 정수와 평균을 다음과 같이 받아줍시다.
1
|
int1, mean = input().split()
|
위와 같이 변수 int1의 값과 변수 mean의 값을 받게 되면, 받은 값은 정수가 아니라 문자열의 형태이므로,
이를 다시 정수 형태로 바꿔줄 필요가 있습니다.
다음과 같이 바꾸어주면 되겠네요.
1
2
|
int1 = int(int1)
mean = int(mean)
|
이제 print() 함수를 이용해서 앞서 구한 방정식의 결과를 출력해주기만 하면 됩니다.
다음과 같이 출력하면 되겠습니다.
1
|
print(2 * mean - int1)
|
따라서, 전체 코드는 다음과 같습니다.
1
2
3
4
5
6
|
int1, mean = input().split()
int1 = int(int1)
mean = int(mean)
print(2 * mean - int1)
|
4. 코드 제출 및 결과
해당 코드가 정답임을 확인할 수 있습니다.
5. 문제의 정답 비율
정답 비율은 매우 높은 85.355% 입니다.
6. 다른 정답자들과의 코드 비교
정답자들의 코드는 대부분 비슷하거나 동일하므로 생략합니다.
오답자들의 코드도 대부분 방정식이나, mean과 int1의 입력 위치를 바꾸는 등의 실수이고
정답 비율이 높아 코드를 찾기 어려워 생략합니다.
7. 결론
7. 결론
긴 글 읽어주신 여러분들께 진심으로 감사드립니다.
좋은 날 되세요.
'백준 문제집 > Python 배우기(1~50)' 카테고리의 다른 글
[백준 문제집][Python 배우기 (101~150)][2309] 일곱 난쟁이 (1) | 2019.12.26 |
---|---|
[백준 문제집][Python 배우기 (1~50)][2588] 곱셈(세 자리 곱셈 과정 출력) (0) | 2019.12.23 |
[백준 문제집][Python 배우기 (1~50)][10430] 나머지 (0) | 2019.12.23 |
[백준 문제집][Python 배우기 (1~50)][1000, 10998, 1001, 1008, 10869] 사칙연산 (0) | 2019.12.23 |
[백준 문제집][Python 배우기 (1~50)][2557] Hello World! (0) | 2019.12.23 |