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

[CodeUp][Python] 1168번 : 나이 계산 1

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

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

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

 

나이 계산 1

주민등록번호는 생년월일과 성별정보, 지역정보로 이루어진다. 여기서 생년월일과 성별정보만 입력으로 받겠다. 성별 정보는 1이면 1900년대 출생 남자, 2이면 1900년대 출생 여자, 3이면 2000년대

codeup.kr

 

 

 

 

 

 

 

 

주의해야 할 점

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

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

 

 

readline으로 입력하면 맨 끝에 \n이 붙는다는 것을 잊으시면 안 됩니다.

 

 

이 문제를 풀 때 생년월일을 저장한 변수 birth의 값에서 년도 부분인 앞의 두 자리를 따로 잘라냈는데

이것을 '문자열 슬라이싱'이라고 합니다.

매우 많이 쓰일 테니 사용법을 꼭 기억합시다.




생각한 풀이 과정

  1. readline을 사용하기 위해 import 합니다.
  2. 생년월일(6자리)과 성별정보(1자리)를 공백으로 구분해 입력합니다. 맨 끝의 \n은 떼어내고, 변수 birth, gender에 각각 넣어줍니다.
  3. 생년월일 정보에서 년도 부분인 앞의 2자리를 떼어내고 정수형으로 변환한 뒤, 변수 year에 저장합니다.
  4. 나이를 저장할 변수 age를 선언합니다. 0으로 초기화합니다.
  5. 성별정보인 gender의 값이 문자 '1' 혹은 '2'라면, 1900년대에 출생한 사람이므로 year의 값에 1900을 더합니다.
  6. 그 외의 경우, 즉, 성별정보인 gender의 값이 문자 '3' 혹은 '4'라면, 2000년대에 출생한 사람이므로 year의 값에 2000을 더합니다.
  7. 나이를 구하는 기준은 2012년이므로, 2012에서 출생년도인 year의 값을 빼고 1을 더해 나이를 구하고 변수 age에 저장합니다.
  8. 나이인 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)

 

 

 

제출 결과

결과

 

 

 

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

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

반응형

댓글