첫 번째 문제
function solution(s) {
let answer = '';
let splits = s.split(" ");
splits.map((word, index) => {
for(let i = 0; i < word.length; i++) {
if(i % 2 == 0) {
answer += word[i].toUpperCase();
} else answer += word[i].toLowerCase();
}
if(index != splits.length -1) answer += " "
})
return answer;
}
두 번째 문제
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년은 윤년입니다.
function solution(a, b) {
let answer = '';
if(a == 1) {
let day = ["THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"];
for(let i = 0; i < 7; i++) {
if(b % 7 == i) answer = day[i]
}
} else if(a = 2) {
let day = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT",];
for(let i = 0; i < 7; i++) {
if(b % 7 == i) answer = day[i]
}
} else if (a == 3) {
let day = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"];
for(let i = 0; i < 7; i++) {
if(i < 6 && b % 7 == i) answer = day[i+1]
else if (i == 6 && b % 7 == i) answer = day[0];
}
}
return answer;
}
시간내에 못 풀었다... 그래도 이제 틀려도 괜찮으니 무조건 접근해보자는 생각으로 코드를 짜보고있다. 좋은 방법인지는 모르겠지만 조금이라도 손대보는 것이 자신감을 준다.
다른 분들의 풀이
function solution(a, b) {
var answer = '';
let count = -1;
const month = [31,29,31,30,31,30,31,31,30,31,30,31]
const date = ['FRI','SAT','SUN','MON','TUE','WED','THU']
for(let i =0; i < a-1;i++){
count += month[i]
}
count += b
const final = count % 7
answer = date[final]
return answer;
}
function solution1(a, b) {
var answer = '';
const date = new Date(`2016,${a},${b}`);
let day= (date+"").split(' ');
answer = day[0].toUpperCase();
return answer;
}