반응형
밑의 링크는 CodeUp에서의 문제 링크입니다.
문제는 링크를 통해서 직접 봐주시길 바랍니다.
주의해야 할 점
이 문제에서 사용한 map을 사용한 입력 방식은 정말 많이 사용하는 입력 방식입니다.
이해하고 거의 외운 것 마냥 써봅시다.
(홀수)+(홀수)나 (짝수)+(짝수)처럼 두 정수의 홀짝 여부가 같을 때 더하면 결과가 짝수이고,
(홀수)+(짝수)나 (짝수)+(홀수)처럼 두 정수의 홀짝 여부가 다를 때 더하면 결과가 홀수입니다.
이런 수의 성질을 알고 있으면 이 문제를 더 쉽게 풀 수 있습니다.
저는 이 문제에서 결과를 출력할 때 f-string을 사용했습니다.
이렇게 출력 형식이 일정 형식에 맞게 특이한 경우, f-string이 매우 유용하게 쓰입니다.
꼭 공부해놓고 써봅시다.
생각한 풀이 과정
- readline을 사용하기 위해 import 합니다.
- 정수 두 개를 공백으로 구분해 입력합니다. 각각 정수형으로 변환하고, 변수 num1, num2에 넣어줍니다.
- 입력한 두 정수와 두 정수의 합의 홀짝 여부를 저장할 변수 num1_type, num2_type, result_type을 선언합니다. 처음에는 None으로 초기화합니다.
- 첫 번째 정수 num1의 값이 홀수라면, 즉, 2로 나누었을 때 나머지가 1이라면, num1의 홀짝 여부를 저장하는 변수인 num1_type에 문자열 '홀수'를 저장합니다.
- 그 외의 경우인 첫 번째 정수 num1의 값이 짝수라면, 즉, 2로 나누었을 때 나머지가 0이라면, num1의 홀짝 여부를 저장하는 변수인 num1_type에 문자열 '짝수'를 저장합니다.
- 두 번째 정수 num2의 값이 홀수라면, 즉, 2로 나누었을 때 나머지가 1이라면, num2의 홀짝 여부를 저장하는 변수인 num2_type에 문자열 '홀수'를 저장합니다.
- 그 외의 경우인 두 번째 정수 num2의 값이 짝수라면, 즉, 2로 나누었을 때 나머지가 0이라면, num2의 홀짝 여부를 저장하는 변수인 num2_type에 문자열 '짝수'를 저장합니다.
- 입력한 두 정수의 홀짝 여부가 같다면, 즉, num1_type과 num2_type의 값이 같다면, 두 정수의 합의 홀짝 여부를 저장하는 변수인 result_type에 문자열 '홀수'를 저장합니다.
- 그 외의 경우인 입력한 두 정수의 홀짝 여부가 다르다면, 즉, num1_type과 num2_type의 값이 다르다면, 두 정수의 합의 홀짝 여부를 저장하는 변수인 result_type에 문자열 '짝수'를 저장합니다.
- 출력 형식에 맞게 (첫 번째 정수의 홀짝 여부)+(두 번째 정수의 홀짝 여부)=(두 정수의 합의 홀짝 여부)를 출력합니다.
제출한 파이썬 코드
# readline을 사용하기 위해 import합니다.
from sys import stdin
# 정수 두 개를 공백으로 구분해 입력합니다.
# 각각 정수형으로 변환합니다.
num1, num2 = map(int, stdin.readline().split())
# 첫 번째 정수의 홀짝 여부, 두 번째 정수의 홀짝 여부, 두 정수의 합의 홀짝 여부를 저장할 변수를 선언합니다.
# 처음에는 모두 None으로 초기화합니다.
num1_type, num2_type, result_type = None, None, None
# 첫 번째 정수인 num1의 값이 홀수라면
if num1 % 2 == 1:
# num1_type에 홀수를 저장합니다.
num1_type = '홀수'
# 그 외의 경우, 즉, 첫 번째 정수인 num1의 값이 짝수라면
else:
# num1_type에 짝수를 저장합니다.
num1_type = '짝수'
# 두 번째 정수인 num2의 값이 홀수라면
if num2 % 2 == 1:
# num2_type에 홀수를 저장합니다.
num2_type = '홀수'
# 그 외의 경우, 즉, 두 번째 정수인 num2의 값이 짝수라면
else:
# num2_type에 짝수를 저장합니다.
num2_type = '짝수'
# 첫 번째 정수와 두 번째 정수의 홀짝 여부가 같다면
if num1_type == num2_type:
# 두 정수의 합은 짝수이므로 result_type에 짝수를 저장합니다.
result_type = '짝수'
# 그 외의 경우, 즉, 첫 번째 정수와 두 번째 정수의 홀짝 여부가 다르다면
else:
# 두 정수의 합은 홀수이므로 result_type에 홀수를 저장합니다.
result_type = '홀수'
# 출력 형식에 맞게 첫 번째 정수, 두 번째 정수, 두 정수의 합의 홀짝 여부를 출력합니다.
print(f'{num1_type}+{num2_type}={result_type}')
제출 결과
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
반응형
댓글