밑의 링크는 CodeUp에서의 문제 링크입니다.
문제는 링크를 통해서 직접 봐주시길 바랍니다.
주의해야 할 점
1. map, split를 사용하는 입력 방식
실수나 정수인 여러 값들이 입력값일 때,
split 메서드를 사용해 공백이나 어떤 문자를 기준으로 입력값을 여러 값들로 분리하고,
map 내장 함수로 각각의 값들을 int형이나 float형으로 정수, 실수 자료형으로
변환하는 기법은 매우 많이 쓰입니다.
코드 이해부터 하고 나면 다른 문제에서도 외운 듯이 사용해봅시다.
num1, num2 = map(int, sys.stdin.readline().split())
2. 규칙 찾기
이 문제를 풀 때 문제에서 의도한 대로 반복문을 사용해서 풀 수도 있지만,
문제에서 제공한 규칙은 딱 봐도 매우 단순한 규칙이기 때문에
그 규칙을 찾아서 반복문을 사용하지 않아도 풀 수 있습니다.
반복문으로 푼 사람들은 반복문을 사용하지 않고 한 번 더 풀어보세요.
3. 홀수, 짝수를 판별하는 방법
이 문제에서처럼 어떤 수가 또 홀수인지 짝수인지를 판별할 때는
나머지를 반환하는 연산자 '%'를 사용합니다.
숫자를 2로 나누었을 때 나머지가 1이라면 홀수, 나머지가 0이라면 짝수인 성질을 이용하는 것입니다.
나머지 연산자는 이 기법뿐만 아니라 정말 많이 쓰이니 꼭 기억합시다.
예제 설명
1. 첫 번째 예제
- 입력
1 2
- 출력
11
- 설명
입력한 존의 번호 k, 밥의 번호 h는 각각 1, 2입니다.
존의 번호 1에 해당하는 돈은 1이고, 밥의 번호 2에 해당하는 돈은 10입니다.
따라서 존과 밥이 받는 금액의 합은 1 + 10 = 11이므로, 11을 출력합니다.
생각한 풀이 과정
존의 번호 k, 밥의 번호 h를 공백으로 구분해 입력합니다.
존과 밥이 받는 금액의 합을 저장할 변수 money를 선언하고 0으로 초기화합니다.
규칙을 보면 홀수 번째 번호의 사람들이 받는 돈은 1, 2, 3, 4, 5, ... 순서이므로,
홀수 번째 사람들이 받는 돈의 규칙은 (홀수 번호) // 2 + 1입니다.
짝수 번째 번호의 사람들이 받는 돈은 10, 20, 30, 40, 50, 순서이므로,
짝수 번째 사람들이 받는 돈의 규칙은 (짝수 번호) // 2 * 10입니다.
먼저 존의 번호 k가 짝수라면 존이 받는 돈인 k // 2 * 10을 계산하고 money에 더해줍니다.
존의 번호 k가 홀수라면 존이 받는 돈인 k // 2 + 1을 계산하고 money에 더해줍니다.
이어서 밥의 번호 h가 짝수라면 존이 받는 돈인 h // 2 * 10을 계산하고 money에 더해줍니다.
밥의 번호 h가 홀수라면 존이 받는 돈인 h // 2 + 1을 계산하고 money에 더해줍니다.
존과 밥이 받는 금액의 합인 money의 값을 출력합니다.
제출한 파이썬 코드
# readline을 사용하기 위해 import합니다.
from sys import stdin
# 존의 번호 k, 밥의 번호 h를 공백으로 구분해 입력합니다.
# 각각 int형으로 변환합니다.
k, h = map(int, stdin.readline().split())
# 존과 밥이 받는 금액의 합을 저장할 변수를 선언합니다.
# 0으로 초기화합니다.
money = 0
# 규칙을 잘 살펴보면
# 홀수 번째 번호의 사람들이 받는 돈은 (홀수 번호) // 2 + 1이고,
# 짝수 번째 번호의 사람들이 받는 돈은 (짝수 번호) // 2 * 10입니다.
# 존의 번호 k가 짝수라면, 즉 2로 나누었을 때 나머지가 0이라면
if k % 2 == 0:
# 존이 받는 돈인 k // 2 * 10을 계산하고 money에 더해줍니다.
money += k // 2 * 10
# 존의 번호 k가 홀수라면, 즉 2로 나누었을 때 나머지가 1이라면
else:
# 존이 받는 돈인 k // 2 + 1을 계산하고 money에 더해줍니다.
money += k // 2 + 1
# 밥의 번호 h가 짝수라면, 즉 2로 나누었을 때 나머지가 0이라면
if h % 2 == 0:
# 밥이 받는 돈인 h // 2 * 10을 계산하고 money에 더해줍니다.
money += h // 2 * 10
# 밥의 번호 h가 홀수라면, 즉 2로 나누었을 때 나머지가 1이라면
else:
# 밥이 받는 돈인 h // 2 + 1을 계산하고 money에 더해줍니다.
money += h // 2 + 1
# 존과 밥이 받는 금액의 합인 money의 값을 출력합니다.
print(money)
제출 결과
댓글