본문 바로가기

JS 코테

<Javascript-CT> 기초 DAY 15

 

문제1
	문자열 my_string과 정수 n이 매개변수로 주어질 때,
    my_string의 앞의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.
    
문제2
	알파벳으로 이루어진 문자열 myString이 주어집니다. 
    모든 알파벳을 대문자로 변환하여 return 하는 solution 함수를 완성해 주세요.
    
문제3
	최대 5명씩 탑승가능한 놀이기구를 타기 위해 줄을 서있는 사람들의 이름이 담긴 문자열 리스트 names가 주어질 때, 
    앞에서 부터 5명씩 묶은 그룹의 가장 앞에 서있는 사람들의 이름을 담은 리스트를 return하도록 solution 함수를 완성해주세요. 마지막 그룹이 5명이 되지 않더라도 가장 앞에 있는 사람의 이름을 포함합니다.

문제4
	정수 리스트 num_list가 주어집니다. 가장 첫 번째 원소를 1번 원소라고 할 때,
    홀수 번째 원소들의 합과 짝수 번째 원소들의 합 중 큰 값을 return 하도록 solution 함수를 완성해주세요. 
    두 값이 같을 경우 그 값을 return합니다.
    
문제5
	정수 리스트 num_list와 정수 n이 주어질 때,
    num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 
    n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요.

 

 

zzz.... 뭔가 풀면서 난이도가 들쭉날쭉한 게 내가 푸는 순서를 잘못 잡은것 같다ㅋㅋㅋㅋ

일단 닿는대로 쉬우면 더푸는 수밖에...ㅠ

🕹️ 문제를 풀기위해 알면 좋을 것 

- String.substring(시작인덱스, 끝인덱스)

 

- Math.max(숫자, 숫자)

Math.max(a, b) 일때
 a > b 이면 return a
 a < b 이면 return b
 a === b 이면 return a(첫번째 인수)
 를 반환한다.

마지막 조건식 대신에 이 메서드를 쓰면 좋을 것 같다.

 

- Array.concat()

String.concat() 말고도 배열에도 concat을 사용할 수 있다

기존 배열을 병합하는게 아니라 새로운 배열을 반환한다!
const array1 = ["a", "b", "c"];
const array2 = ["d", "e", "f"];
const array3 = array1.concat(array2);
// ["a", "b", "c", "d", "e", "f"]

5번문제에서 나는 ... 스프레드 연산자를 썼는데 concat을 쓴사람도 있더라. 알아두자!

 

내 답안지

문제1

function solution(my_string, n) {
    return my_string.slice(0, n);
}

+) 다른사람은 

substring을 썼더라 알아두자!

 

 

문제2

function solution(myString) {
    return myString.toUpperCase()
}

 

 

문제3

function solution(names) {
    var answer = [];

    for(let i=0; i < names.length; i+=5){
        answer.push(names[i])
    }
    return answer
}

 

문제4

function solution(num_list) {
    let even = 0 // 짝수번째 원소들
    let odd = 0 // 홀수번째 원소들 index%2 ===0 인 것들
    num_list.map((item, index) => {
        if(index%2 === 0){
            odd += item
        }else if(index %2 ===1){
            even += item
        }
    })
    
    if(odd === even){ return odd}
    else if(odd > even){ return odd}
    else if(odd < even){return even}
}

 

Math.max 로 마지막 조건식 개선

function solution(num_list) {
    let even = 0 // 짝수번째 원소들
    let odd = 0 // 홀수번째 원소들 index%2 ===0 인 것들
    num_list.map((item, index) => {
        if(index%2 === 0){
            odd += item
        }else if(index %2 ===1){
            even += item
        }
    })
    
    return Math.max(odd, even)
}

 

 

문제5

function solution(num_list, n) {
    const temp1 = num_list.slice(0, n)
    const temp2 = num_list.slice(n)

    return [...temp2, ...temp1]
}
728x90