티스토리 뷰
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년 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일은 실제로 있는 날입니다.
programmers.co.kr
풀이
function solution(a, b) {
var answer = '';
const days = ['SUN', 'MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT'];
let setDate = new Date(2016, a-1, b);
answer = days[setDate.getDay()];
return answer;
}
1. 결과값은 숫자로 나올 예정이므로 매칭할 요일 배열을 정의해줌
2. Date 객체를 생성하면서 날짜를 넣어줌. 이때 월은 0~11에 해당하므로 a에서 1을 빼줌. 일은 1부터 31이므로 해당 없음
3. getDay() 함수로 요일에 해당하는 숫자를 받아 days 배열의 인덱스로 넣어주고, answer에 결과를 넣어줌
4. answer 반환
다른 사람의 풀이
function getDayName(a,b){
return new Date(2016,a-1,b).toString().slice(0,3).toUpperCase();
}
와.. toString()으로 하면 요일이 텍스트로 바뀌는구나...!
(쉬운거 해서 한개 더 함)
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
코딩테스트 연습 - 가운데 글자 가져오기 | 프로그래머스
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 재한사항 s는 길이가 1 이상, 100이하인 스트링입니다. 입출력 예 s return abcde c qwer we
programmers.co.kr
풀이
function solution(s) {
var answer = '';
let mid = Math.ceil(s.length / 2) - 1;
if(s.length % 2) {
answer = s.charAt(mid)
} else {
answer = s.slice(mid, mid + 2);
}
return answer;
}
1. 변수 mid를 만들어 가운데 글자의 인덱스를 구함
2. 나머지가 1이면(홀수이면) charAt()을 이용해 가운데 글자를 추출해 answer에 넣어줌
3. 그렇지 않으면(짝수이면) slice()를 이용해 글자 2개를 추출함
4. 리턴 반환
다른 사람의 풀이
function solution(s) {
return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}
substr()*으로 글자를 추출함.
두번째 파라미터는 3항 연산자로 홀수면 1, 짝수면 2가 나오도록함
MDN에서는 substr() 대신 subString()을 사용할 것을 권장함*
Warning: Although String.prototype.substr(…) is not strictly deprecated (as in "removed from the Web standards"), it is considered a legacy function and should be avoided when possible. It is not part of the core JavaScript language and may be removed in the future. If at all possible, use the substring() method instead.
(두번째꺼도 간단해서 한개만더...!)
길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다.
코딩테스트 연습 - 수박수박수박수박수박수? | 프로그래머스
길이가 n이고, 수박수박수박수....와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 수박수박을 리턴하고 3이라면 수박수를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입니다. 입출력 예 n return 3 수박수 4 수박수박
programmers.co.kr
풀이
function solution(n) {
var answer = '';
let watermelon = [];
for(let i = 0; i < n; i++) {
i % 2 ? watermelon.push('박') : watermelon.push('수');
}
answer = watermelon.join('');
return answer;
}
1. watermelon 배열 하나 생성
2. for 문을 돌면서 i가 짝수면 '박'을, 홀수면 '수'를 배열에 추가해줌
3. join()을 이용해 배열을 문자열로 바꿔서 결과를 반환함
다른 사람의 풀이
function waterMelon(n){
var result = "수박";
result = result.repeat(n-1).substring(0,n);
return result;
}
repeat() 이라는 좋은 함수를... 생각 못했네....
repeat()으로 반복해주고, substring()을 이용해 처음부터 n까지를 뽑아냈다!
반복할 땐 repeat.. 기억하자👍🏻
'1Day 1Algorithm' 카테고리의 다른 글
[DAY 18] 이상한 문자 만들기 (0) | 2019.10.18 |
---|---|
[DAY 17] 예산 (0) | 2019.10.17 |
[DAY 15] 체육복 (0) | 2019.10.15 |
[DAY 14] 프로그래머스 스킬 체크 테스트 Level.2 (0) | 2019.10.14 |
[DAY 13] Equal Stacks @ (0) | 2019.10.13 |
- Total
- Today
- Yesterday
- 구간합
- 자료구조
- Algorithm
- 알고리즘
- Webpack
- Typescript
- 운영체제
- 1day1algorithm
- sort
- Props
- 우아한테크러닝
- 리액트
- 배열
- 시분할시스템
- 컴퓨터공학
- Array
- 타입스크립트
- reduce()
- 웹팩
- OS
- greedyAlgorithm
- javascript
- sort()
- 자바스크립트
- 멀티프로그래밍
- js
- 배치처리시스템
- React
- redux-saga
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |