728x90
반응형
// 2016 년 1월 1일은 금요일입니다.
// 2016년 a월 b일은 무슨 요일일까요?
// 가능한 a, b를 함수에 전달했을 때,
// 2016년 a월 b일이 무슨 요일인지 리턴하는 함수 '요일탐색'을 완성하세요.
// 요
// 요일의 이름은 일요일부터 토요일까지 각각 "SUM", "MON", "TUE", "WED", "THU", "FRI", "SAT"
// 예를 들어 a = 5, b = 24 라면 5월 24일은 화요일이므로 문자열 'tue'를 반환 후 출력

function 요일탐색(a, b){
let week = ["SUM", "MON", "TUE", "WED", "THU", "FRI", "SAT"]
let date = new Date();
    date.setFullYear(2016, a-1, b);
    return week[date.getDay()];
}
console.log(요일탐색(5,24))


// 2번(https://school.programmers.co.kr/learn/courses/30/lessons/12903): 가운데 글자 가져오기
// 단어 s의 가운데 글자를 반환하는 함수, '중간문자열'을 만들어 보세요.
// 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. 그리고 결과 출력하세요
// 함수를 호출할 때, 자신이 문자열을 바꿔가면서 테스트해봅니다.
// 예) 중간문자열("test") -> "es" 반환, 중간문자열("fat") -> "a" 반환

let 중간문자열 = (text) => {
    let arr = '';
    const len = text.length;
    if((((len)/2) % 2) == 0){
        arr += text[(len/2)-1];
        arr += text[(len/2)];
    }
    else if((((len)/2) % 2) != 0){
        arr += text[((len-1)/2)];
    }
    return console.log(arr);
}
중간문자열('test');


let s = 'fat';
let 중간문자열2 = (s) => {
    const len = s.length;
    return len % 2 === 0 ? s[len / 2 - 1] + s[len/2] : s[parseInt(len / 2)];
}
console.log(중간문자열2('fat'));



// 3번(https://school.programmers.co.kr/learn/courses/30/lessons/12935): 제일 작은 수 제거하기
// 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, '작은수제거'을 완성해주세요. 
// 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 그리고 결과 출력하세요
// 예를들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴 하고, [10]면 [-1]을 리턴 합니다.
// 함수를 호출할 때, 자신이 전달하는 배열을 바꿔가면서 테스트해봅니다.
// 예) 작은수제거([1, 2, 3, 4]) -> [2, 3, 4] 반환, 작은수제거([5, 7, 3, 1, 5]) ->  [5, 7, 3, 5] 반환
// 예) 작은수제거([1]) -> [-1] 반환

let 작은수제거 = (...arr) => {
    arr.sort()
    arr.shift();
    console.log(arr[1] >= 1 ? arr : [-1]);
}
작은수제거(1, 2, 3, 4);


let arr = [5, 7, 3, 1, 5];
let 작은수제거2 = (arr) => {
    let min = arr[0];
    for (let i = 0; i < arr.length; i++) {
        if(arr[i] < min){
            min = arr[i];
        }
    }
    let newArr = [];
    for(let i=0; i < arr.length; i++){
        if(arr[i] !== min){
            newArr.push(arr[i])
        }
    }
    return newArr;
}
작은수제거2(arr);



// 4번 (https://school.programmers.co.kr/learn/courses/30/lessons/12916): 문자열 내 p와 y의 개수
// 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. 
// s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 '문자찾기' 함수를 완성하세요. 
// 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.
// 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 그리고 결과를 출력하세요.

let PY = "pPoooyY";
s = PY.toLowerCase();
let 문자찾기 = (Str) => {
    let y1 = 0;
    let p1 = 0;
    for(let value of Str ){
        if(value == 'y'){
            y1++;
        }
        else if(value == 'p'){
            p1++;
        }   
    }
    return y1 == p1 ? true : false;
}
console.log(문자찾기(s));


let 문자찾기2 = (s1) => {
    s1 = s1.toUpperCase();
    let pCount = 0;
    let yCount = 0;
    for (let i = 0; i < s.length; i++) {
        if(s1[i] === 'P'){
            pCount++;
        }
        else if(s1[i] ==='Y'){
            yCount++;
        }
    }
    return pCount === yCount;
}
console.log(문자찾기2('pPoooyY'));

let s5 = 'pPoooyY';
s5.match(/p/ig).length === s5.match(/y/ig).length;




// 반복문
// while > 조건식이 true라면, {}내의 명령을 순서대로 실행
let a = 0;
while(a < 10){
    console.log('test');
    a++;
}


//for - 조건식이 true일 떄 {}안에 있는 명령을 순선대로 실행
for(let i = 0; i < 10; i++){
    console.log('test2');
}






728x90
반응형

'코딩일지 > WEB' 카테고리의 다른 글

js 정규식 연습1  (0) 2023.01.01
js 정규식  (2) 2023.01.01
js 기초4  (2) 2023.01.01
js 연습1  (0) 2023.01.01
js 기초 3  (2) 2023.01.01

+ Recent posts

">