[프로그래머스] 2016년, 수박수박수박수박수박수? - JS

2022. 8. 10. 14:26Algorithm

2016년


문제 설명

2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다.

예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요.

 

제한 조건
  • 2016년은 윤년입니다.
  • 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다)

 

입출력 예

a b result
5 24 "TUE"

나의 풀이

function solution(a, b) {
  return new Date(2016, a - 1, b).toString().slice(0, 3).toUpperCase();
}
  1. 자바스크립트의 Date 객체를 사용해 원하는 날짜를 생성한다 >> 2016-05-23T15:00:00.000Z
  2. toString() 메서드를 사용해 문자열로 변환하면 자동으로 이렇게 변한다 >>  Tue May 24 2016 00:00:00 GMT+0900
  3. 요일 값을 구하기 위해 slice() 메서드로 자른다 >> Tue
  4. toUpperCase() 메서드를 사용해 대문자로 변환 후 값을 반환한다 > TUE

 

다른 사람의 풀이

function solution(a, b) {
  let month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  let week = ["FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU"];
  let sum = b - 1;

  for (let i = 0; i < a - 1; i++) {
    sum += month[i];
  }
  
  return week[sum % 7];
}

날짜와 요일을 배열로 만들어, 일수를 계산하여 요일 값을 찾아냈다.


문제 링크

https://programmers.co.kr/learn/courses/30/lessons/12901

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

수박수박수박수박수박수?


문제 설명

길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를 들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.

 

제한 조건
  • n은 길이 10,000이하인 자연수입니다.

 

입출력 예
n return
3 "수박수"
4 "수박수박"

나의 풀이

function solution(n) {
  let arr = [];

  for (let i = 1; i <= n; i++) {
    if (i % 2 !== 0) arr.push("수");
    else arr.push("박");
  }

  return arr.join("");
}

반복문으로 홀수에는 "수", 짝수에는 "박"을 배열에 넣고, 문자열로 변환해서 값을 리턴했다.

 

다른 사람의 풀이

function solution(n) {
  return answer = "수박".repeat(n).slice(0, n);
}

문자열을 주어진 횟수만큼 반복하는 repeat() 메서드를 사용한 것이 인상적이었다.


문제 링크

https://school.programmers.co.kr/learn/courses/30/lessons/12922

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

반응형