[코딩테스트 연습] 2016년_Level.01

2019. 4. 19. 10:40·코딩테스트/JavaScript

하루에 3문제씩은 풀어보자는 마음으로 풀고 있다.

역시 풀면서 느껴지는 실제 코딩의 벽이란 아픈 것...

 


[문제 설명]

 

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"

 

 


이번에는 입출력 예에 대한 설명이 없다!

우선 문제를 읽고 나는 이렇게 생각했다.

 

˙ new Date( dateString ).getDay( )를 이용하여 요일을 구하자!

˙ 그런데 getDay( )는 숫자로 요일을 리턴하니까 getTodayLabel(today)라는 함수를 만들어서 요일을 받아내자

˙ dateString은 '일 월 년도'로 받자!(String으로!)

 

그리고 아래가 내가 작성한 코드이다.


[작성코드]

 

function getMonthLabel(a) {
    const MONTH = new Array('January', 'Feburary', 'March', 'April', 'May', 'June', 'July', 'August', 'Setpember', 'October', 'November', 'December');
    let monthLabel = MONTH[a-1];    //배열 MONTH의 index는 0부터 시작하기 때문!
    
    return monthLabel;
}

function getTodayLabel(today) {
    
    const week = new Array('SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT');
    let todayLabel = week[today];
    
    return todayLabel;
}

function solution(a, b) {
    
    let wonderM = getMonthLabel(a),
        wantedDate = (b + " " + wonderM +  " " +" 2016"),
        t = JSON.parse(JSON.stringify(wantedDate)),
        result = new Date(t).getDay(),
        rDay = getTodayLabel(result);
    
    return rDay;
}

/* 테스트 */
let i =  solution(2, 29);

console.log(i + "DAY");

 

[실행 결과]

...더보기
테스트 1
입력값 〉 5, 24
기댓값 〉 "TUE"
실행 결과 〉 테스트를 통과하였습니다.
출력 〉 MON

테스트 결과 (~˘▾˘)~

1개 중 1개 성공

 

[코드 채점]

...더보기

정확성 테스트

테스트 1 〉 통과 (1.68ms, 37.3MB)
테스트 2 〉 통과 (1.63ms, 37.3MB)
테스트 3 〉 통과 (1.69ms, 36.9MB)
테스트 4 〉 통과 (1.70ms, 36.9MB)
테스트 5 〉 통과 (1.65ms, 36.8MB)
테스트 6 〉 통과 (1.65ms, 37.5MB)
테스트 7 〉 통과 (1.69ms, 36.7MB)
테스트 8 〉 통과 (1.67ms, 36.8MB)
테스트 9 〉 통과 (1.67ms, 36.7MB)
테스트 10 〉 통과 (1.68ms, 36.9MB)
테스트 11 〉 통과 (1.67ms, 37MB)
테스트 12 〉 통과 (1.65ms, 37.1MB)
테스트 13 〉 실패 (3.09ms, 37.1MB)
테스트 14 〉 통과 (1.64ms, 36.8MB)

채점 결과

정확성: 92.9

합계: 92.9 / 100.0

 

이번에도 100점이 아니다ㅠㅠ 그런데 이번엔 뭐가 틀렸는지 진짜 모르겠다.

뭔가 문제가 있으니 패스가 안되겠지..? 이따 오키에 물어본 답변이 올라오면 마저 작성해야겠다.

 

 


멍청이는 답을 찾았다

const MONTH = new Array('January', 'Feburary', 'March', 'April', 'May', 'June', 'July', 'August', 'Setpember', 'October', 'November', 'December');

September인데 Setpember라고 쳤다 이 바보..ㅎ

OKKY에 물어봤더니 저거 짚어주셔서 완전 머쓱...저거 고치니까 100점 뜨더라 하 오늘도 제 부주의함에 무릎을 탁 치고 갑니다.

 


[완성 코드]

function getMonthLabel(a) {
    const MONTH = new Array('January', 'Feburary', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
    let monthLabel = MONTH[a-1];    //배열 MONTH의 index는 0부터 시작하기 때문!
    
    return monthLabel;
}

function getTodayLabel(today) {
    
    const week = new Array('SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT');
    let todayLabel = week[today];
    
    return todayLabel;
}

function solution(a, b) {
    
    let wonderM = getMonthLabel(a),
        wantedDate = (b + " " + wonderM +  " " +" 2016"),
        t = JSON.parse(JSON.stringify(wantedDate)),
        result = new Date(t).getDay(),
        rDay = getTodayLabel(result);
    
    return rDay;
}

/* 테스트 */
let i =  solution(2, 29);

console.log(i + "DAY");

 


오늘의 교훈 : 철자를 잘보자

'코딩테스트 > JavaScript' 카테고리의 다른 글

[코딩테스트 연습] K번째 수_Level.01  (0) 2019.04.15
[코딩테스트 연습] 완주하지 못한 선수_Level.01  (0) 2019.04.15
'코딩테스트/JavaScript' 카테고리의 다른 글
  • [코딩테스트 연습] K번째 수_Level.01
  • [코딩테스트 연습] 완주하지 못한 선수_Level.01
두부곰
두부곰
만드는게 좋아! 프론트엔드 개발, 요리, 그림 등 창작을 즐기는 자유곰 *농담곰 너무 귀여워*
  • 두부곰
    뒹굴뒹굴 두부곰 일지
    두부곰
  • 전체
    오늘
    어제
    • 분류 전체보기 (37)
      • 데굴데굴 일상 (18)
        • 일기장 (9)
        • 공부일지 (6)
        • 이것저것 리뷰 (3)
      • FE (5)
        • Next.js (0)
        • React (3)
        • TailwindCSS (0)
        • HTML&CSS (1)
        • TS&JS (0)
        • Storybook (0)
        • 기타 라이브러리 (1)
      • FE외 (1)
        • Server (1)
      • 협업 도구 (1)
        • Git (0)
        • Figma (0)
        • 기타 TIP (1)
      • 코딩테스트 (3)
        • JavaScript (3)
      • 취미생활 (9)
        • 요리 (8)
        • 일러스트 (1)
        • 코바늘 (0)
        • 앨범 스크랩 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    하지만노포기
    열심히하자
    정밀전동드라이버
    에러해결
    3기
    일상
    얼은이니까
    근황
    프론트하고싶어
    프론트엔드
    svgr
    개인프로젝트
    엘리스AI트랙
    어쩌겠어돈벌어야지
    프론트엔드개발자취준
    열심히살자
    개발자취준
    취뽀가즈아
    생일선물
    node.js
    java말고javascript주세요
    su -
    할수있다
    @svgr/cli
    HTML&CSS는재밌다
    앨리스AI트랙3기
    엘리스AI트랙3기
    3기레이서
    @svg/webpack
    야근제발그만
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
두부곰
[코딩테스트 연습] 2016년_Level.01
상단으로

티스토리툴바