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

[CodeUp][Python] 1161번 : 홀수와 짝수 그리고 더하기

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

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

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

 

홀수와 짝수 그리고 더하기

만약 첫번째 정수가 홀수이면 "홀수"를 출력하고, 짝수이면 "짝수"를 출력한 후  "+"를 출력한다. 그리고 두번째 정수가 홀수이면 "홀수"를 출력하고, 짝수이면 "짝수"를 출력한 후  "="을 출력하

codeup.kr

 

 

 

 

 

 

 

 

주의해야 할 점

이 문제에서 사용한 map을 사용한 입력 방식은 정말 많이 사용하는 입력 방식입니다.

이해하고 거의 외운 것 마냥 써봅시다.



(홀수)+(홀수)나 (짝수)+(짝수)처럼 두 정수의 홀짝 여부가 같을 때 더하면 결과가 짝수이고,

(홀수)+(짝수)나 (짝수)+(홀수)처럼 두 정수의 홀짝 여부가 다를 때 더하면 결과가 홀수입니다.

이런 수의 성질을 알고 있으면 이 문제를 더 쉽게 풀 수 있습니다.

 

 

저는 이 문제에서 결과를 출력할 때 f-string을 사용했습니다.

이렇게 출력 형식이 일정 형식에 맞게 특이한 경우, f-string이 매우 유용하게 쓰입니다.

꼭 공부해놓고 써봅시다.




생각한 풀이 과정

  1. readline을 사용하기 위해 import 합니다.
  2. 정수 두 개를 공백으로 구분해 입력합니다. 각각 정수형으로 변환하고, 변수 num1, num2에 넣어줍니다.
  3. 입력한 두 정수와 두 정수의 합의 홀짝 여부를 저장할 변수 num1_type, num2_type, result_type을 선언합니다. 처음에는 None으로 초기화합니다.
  4. 첫 번째 정수 num1의 값이 홀수라면, 즉, 2로 나누었을 때 나머지가 1이라면, num1의 홀짝 여부를 저장하는 변수인 num1_type에 문자열 '홀수'를 저장합니다.
  5. 그 외의 경우인 첫 번째 정수 num1의 값이 짝수라면, 즉, 2로 나누었을 때 나머지가 0이라면, num1의 홀짝 여부를 저장하는 변수인 num1_type에 문자열 '짝수'를 저장합니다.
  6. 두 번째 정수 num2의 값이 홀수라면, 즉, 2로 나누었을 때 나머지가 1이라면, num2의 홀짝 여부를 저장하는 변수인 num2_type에 문자열 '홀수'를 저장합니다.
  7. 그 외의 경우인 두 번째 정수 num2의 값이 짝수라면, 즉, 2로 나누었을 때 나머지가 0이라면, num2의 홀짝 여부를 저장하는 변수인 num2_type에 문자열 '짝수'를 저장합니다.
  8. 입력한 두 정수의 홀짝 여부가 같다면, 즉, num1_type과 num2_type의 값이 같다면, 두 정수의 합의 홀짝 여부를 저장하는 변수인 result_type에 문자열 '홀수'를 저장합니다.
  9. 그 외의 경우인 입력한 두 정수의 홀짝 여부가 다르다면, 즉, num1_type과 num2_type의 값이 다르다면, 두 정수의 합의 홀짝 여부를 저장하는 변수인 result_type에 문자열 '짝수'를 저장합니다.
  10. 출력 형식에 맞게 (첫 번째 정수의 홀짝 여부)+(두 번째 정수의 홀짝 여부)=(두 정수의 합의 홀짝 여부)를 출력합니다.



 

 

 

 

 

 

제출한 파이썬 코드

# 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}')

 

 

 

제출 결과

결과

 

 

 

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

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

반응형

댓글