:ledger: 문제 설명

머쓱이는 선생님이 몇 년도에 태어났는지 궁금해졌습니다.
2022년 기준 선생님의 나이 age가 주어질 때, 선생님의 출생 연도를 return 하는 solution 함수를 완성해주세요.

:one: 제한사항

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

:two: 입출력 예

age result
40 1983
23 2000

:three: 입출력 예 설명

:pushpin: 3-1) 입출력 예 설명 #1

2022년 기준 40살이므로 1983년생입니다.

:pushpin: 3-2) 입출력 예 설명 #2

2022년 기준 23살이므로 2000년생입니다.

:four: 프로그래머스에서 제공한 코드

처음 프로그래머스에서 작성된 코드는 아래와 같다.

function solution(age) {
    var answer = 0;
    return answer;
}

:ledger: 문제 풀이

const solution = age => 2022 - age + 1

console.log(solution(40)); // 입출력 예 설명 #1
console.log(solution(23)); // 입출력 예 설명 #2

:one: 함수 선언

  • 화살표 함수를 사용하여 age 매개변수를 받는다.

:two: 풀이

  • 문제 설명에서 2022년 기준으로 선생님의 나이 age가 주어질 때 선생님의 출생 년도를 구하기 위해 2022 - age 을 해주었다.
  • 제한사항에서 나이는 태어난 연도에 1살로 되어있어서 age에 + 1을 해주었다.

:three: 결과 반환

  • age에 40을 대입할 경우 2022 - 40 + 1 = 1983 반환
  • age에 23을 대입할 경우 2022 - 23 + 1 = 2000 반환

:four: 실행

  • console.log(solution(40));을 호출하면, 1983 을 반환한다.
  • console.log(solution(23));을 호출하면, 2000 을 반환한다.

:fire: 다른 사람의 풀이 참고

변수를 생략 후 리턴하여 반환하는 풀이 과정이 가장 많았고, 2022년 기준 문제여서 Date 현재 날짜의 객체를 생성 후 getFullYear() 메서드를 사용하여 당시의 연도를 추출하여 적용하는 방식이 있었다.
문제가 현재 년도를 기준으로하면 Date 객체 생성 후 적용하는 풀이가 완벽한 것 같다.

// 변수 생략 적용 (가장 많은 사용자 2372명)
function solution(age) {
    return 2022-age+1;
}

// Date 객체 생성 후 적용
function solution(age) {
    return new Date().getFullYear() - age + 1;
}

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges