본문 바로가기
코딩일기/JS<자바스크립트>

자바 스크립트 <나이 출력> 프로그래머스

by 2pro.e_pro 2024. 5. 30.
728x90
반응형

오늘은 자바스크립트 <나이출력> 프로그래머스 문제를 풀어보자.

 

문제는 아래와 같다.

 

<참고>

이 문제에 대하여 24년 3월 14일 부로 나이에 관련한 건의 사항이 있었던 것 같다.

 

 

해당 문제는 머쓱이의 선생님의 출생년도를 구하는 값인데,

이 문제를 잘 읽어 보면

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

라는 제한사항 부분에 조건이 있기 때문에 

"2022년에서 age를 빼는게 아니라 +1을 해야하는구나"를 생각할 수 있다.

그렇다고 너무 어려워 지는 것이 아니라 아래 코드와 같이 작성 할 수 있다.

 

function solution(age) {
    var answer = 0;
    return answer = 2022 - age +1;
    
}

 

지금까지의 아티클을 차근차근 읽어 주신 분이라면 단번에 이해 할 수 있는 코드인데,

해석하자면 return answer 로 시작하는 값에 문제와 같은 답을 그대로 써내려 갈 수 있다.

결국 2022년도에서 age 값을 빼고 <제한사항 조건>에 맞추어 +1을 하면 되는 문제였다.

 

다른 사람의 답은 어땠을까?

 

function solution(age) {
    return new Date().getFullYear() - age + 1;
}

위 와같이 수준높게 푸는 분도 있었지만

2023년이니까 그냥 return new Date().getFullYear() - age 하시면 됩니다.

라는 답변이 있기에 위 코드를 수정하면 아래와 같을 것.

 

function solution(age) {
    return new Date().getFullYear() - age;
}

 

지금 초심단계에서는 이해하기 어려울 수 있는 for문으로 작성한 예시는 아래와 같다.

 

function solution(age) {
    var answer = 2000;
    for(let i = 0; i < 100; i ++){
        if(age > 23){
            age--;
            answer--;
        }
        else if(age < 23){
            age++;
            answer++;
        }
        else{
            break;
        }
    }
    return answer;
}

 

GPT의 첨언을 더하자면

 

 

📌단.

처음부터 문제를 GPT에 복사 붙여넣기해서 답을 얻으면 내 성장에는 전혀 도움이 되지 않는다.

프로그래머스 문제를 풀면서 느끼는 점은

"내가 배운 코드로 얼마나 로직에 대한 고민을 많이 하는가?"

위 문장이 중점이며 여러분도 꼭 고민하고

내가 구상한 로직을 구현한 코드가 실행이 안될때

구글링으로 메소드, 해결책을 디깅하도록 하고

이후에도 테스트에서 막히는 경우 또는 테스트를 통과 하더라도

나의 코드에 대한 확실한 이해를 위한 해설정도로 사용하길 바란다.

728x90
반응형

댓글