본문 바로가기
개발/개발 공부

[프로그래머스] 코딩테스트 입문 : 나이 출력

by 하모예 2024. 9. 2.

| 문제

머쓱이는 선생님이 몇 년도에 태어났는지 궁금해졌습니다.

2022년 기준 선생님의 나이 age가 주어질 때,

선생님의 출생 연도를 return하는 solution 함수를 완성해주세요.

| 제한 사항

  • 0 <  age ≤ 120
  • 나이는 태어난 연도에 1살이며 매년 1월 1일마다 1살씩 증가합니다.

| 입출력 예

age result
40 1983
23 2000

| 풀이 1

public int solution01(int age) {
    return 2022 - age +1;
}

| 풀이 2

import java.time.LocalDate;

public int solution02(int age) {
    LocalDate today = LocalDate.now();
    return today.getYear() - age +1;
}

| 해설

2022년 기준 본인의 나이와 출생연도를 알고 있다면 누구나 쉽게 풀 수 있는 문제입니다.

2022년에 나이가 23살이라면 2021년에는 22살이었을 거고...

이렇게 쭉 내려가다 보면 2000연도에 1살이었다는 결론에 도달할 수 있지요.

즉, 2022이라는 올해 년도에 나이만큼 뺀 다음 1을 더하면 태어난 해를 알 수 있습니다.

특정 인물이 태어난 년도나 나이를 알아내는 것은 쉬운 로직이지만

2022년의 나이를 통해 추측하기보다는 올해의 나이를 통해 추측할 일이 더 많지요.

그래서 문제의 정답은 아니지만 풀이 2는 문제에서 올해의 나이가 주어졌다고 생각하고 풀어봤습니다.

LocalDate 객체를 통해 오늘의 날짜 중 연도를 추출하고 풀이 1과 같은 로직으로 계산했습니다.

도움이 되었길 바랍니다. 

댓글