반응형
밑의 링크는 CodeUp에서의 문제 링크입니다.
문제는 링크를 통해서 직접 봐주시길 바랍니다.
주의해야 할 점
이 문제에서 사용한 map을 사용한 입력 방식은 정말 많이 사용하는 입력 방식입니다.
이해하고 거의 외운 것 마냥 써봅시다.
readline으로 입력하면 맨 끝에 \n이 붙는다는 것을 잊으시면 안 됩니다.
이 문제를 풀 때 생년월일을 저장한 변수 birth의 값에서 년도 부분인 앞의 두 자리를 따로 잘라냈는데
이것을 '문자열 슬라이싱'이라고 합니다.
매우 많이 쓰일 테니 사용법을 꼭 기억합시다.
생각한 풀이 과정
- readline을 사용하기 위해 import 합니다.
- 생년월일(6자리)과 성별정보(1자리)를 공백으로 구분해 입력합니다. 맨 끝의 \n은 떼어내고, 변수 birth, gender에 각각 넣어줍니다.
- 생년월일 정보에서 년도 부분인 앞의 2자리를 떼어내고 정수형으로 변환한 뒤, 변수 year에 저장합니다.
- 나이를 저장할 변수 age를 선언합니다. 0으로 초기화합니다.
- 성별정보인 gender의 값이 문자 '1' 혹은 '2'라면, 1900년대에 출생한 사람이므로 year의 값에 1900을 더합니다.
- 그 외의 경우, 즉, 성별정보인 gender의 값이 문자 '3' 혹은 '4'라면, 2000년대에 출생한 사람이므로 year의 값에 2000을 더합니다.
- 나이를 구하는 기준은 2012년이므로, 2012에서 출생년도인 year의 값을 빼고 1을 더해 나이를 구하고 변수 age에 저장합니다.
- 나이인 age의 값을 출력합니다.
제출한 파이썬 코드
# readline을 사용하기 위해 import합니다.
from sys import stdin
# 생년월일(6자리)과 성별정보(1자리)가 공백으로 구분해 입력합니다.
# 맨 끝의 \n은 떼어주고 각각 변수에 넣어줍니다.
birth, gender = stdin.readline().rstrip().split()
# birth에서 앞의 2자리가 년도 부분이므로 이를 정수로 변환하고 변수에 저장합니다.
year = int(birth[:2])
# 나이를 저장할 변수를 선언합니다.
# 처음에는 0으로 초기화합니다.
age = 0
# 성별정보가 1 혹은 2라면
if gender == '1' or gender == '2':
# 1900년대에 출생한 사람이므로 year의 값에 1900을 더해줍니다.
year += 1900
# 그 외의 경우, 즉, 성별정보가 3 혹은 4라면
else:
# 2000년대에 출생한 사람이므로 year의 값에 2000을 더해줍니다.
year += 2000
# 2012에서 년도를 빼주고 1을 더해 나이를 구하고 다시 변수 age에 저장합니다.
age = 2012 - year + 1
# 나이인 age의 값을 출력합니다.
print(age)
제출 결과
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
반응형
댓글