programmers

코딩 테스트 / 진료 순서 정하기, 영어가 싫어요

이미사용 2023. 5. 31. 00:16
명언
-
728x90
반응형

진료 순서 정하기

※풀이

1. emergency.slice()를 사용하여 emergency 배열의 복사본인 order 배열을 생성합니다.
2. order 배열을 내림차순으로 정렬합니다. sort() 메소드에 콜백 함수를 전달하여 정렬 순서를 지정합니다.
3. emergency 배열의 각 요소 v에 대해 다음을 수행합니다:
4. order.indexOf(v)를 사용하여 v의 인덱스를 order 배열에서 찾습니다.
5. 해당 인덱스에 1을 더한 값을 반환하는 새로운 배열을 생성합니다.
6. 생성된 배열을 반환합니다.

slice() JavaScript 배열 객체의 내장 메소드입니다. 이 메소드를 사용하면 배열의 일부분을 추출하여 새로운 배열을 반환할 수 있습니다.
sort()  JavaScript 배열 객체의 내장 메소드입니다. 이 메소드를 사용하면 배열의 요소를 정렬할 수 있습니다. sort() 메소드는 기본적으로 배열을 유니코드 코드 포인트에 따라 정렬합니다.
indexOf() JavaScript에서 문자열 메서드 중 하나입니다. 이 메서드는 문자열에서 지정된 값이 처음으로 나타나는 인덱스를 반환합니다.

 

 

ex1)

    {
        function solution(emergency) {
            let order = emergency.slice().sort((a, b) => b - a)
            return emergency.map(v => order.indexOf(v) + 1);
        }
        console.log(solution([3, 76, 24]));
        //[3, 1, 2]
    }

ex2)

    {
        function solution(emergency) {
            let order = emergency.slice().sort((a, b) => b - a)
            return emergency.map(v => order.indexOf(v) + 1);
        }
        console.log(solution([1, 2, 3, 4, 5, 6, 7]));
        //[7, 6, 5, 4, 3, 2, 1]
    }

 

영어가 싫어요

※풀이

1. 객체 obj를 저장합니다. 이 객체는 영단어와 해당하는 숫자의 쌍을 가지고 있습니다.
2.numbers 문자열을 replace() 메서드를 사용하여 영단어를 해당하는 숫자로 대체합니다. /zero|one|two|three|four|five|six|seven|eight|nine/g 정규 표현식은 영단어들을 전역(g)으로 찾기 위한 패턴입니다.
3. replace() 메서드의 두 번째 인수는 대체 함수입니다. 이 함수는 매칭된 영단어를 받아 해당하는 숫자를 반환합니다. obj[v]를 통해 v에 해당하는 영단어의 숫자 값을 가져옵니다.
4. + 연산자를 사용하여 반환된 문자열을 숫자로 변환하여 반환합니다. 이를 통해 변환된 숫자 값을 얻을 수 있습니다.

replace() JavaScript 문자열의 메서드로, 문자열 내에서 특정 패턴을 찾아 새로운 문자열로 대체하는 기능을 제공합니다. 이 메서드는 다음과 같은 구문을 가지고 있습니다:

 

ex1)

    {
        function solution(numbers) {
            const obj = {
                zero: 0,
                one: 1,
                two: 2,
                three: 3,
                four: 4,
                five: 5,
                six: 6,
                seven: 7,
                eight: 8,
                nine: 9,
            }
            return +numbers.replace(/zero|one|two|three|four|five|six|seven|eight|nine/g, (v) => {
                return obj[v]
            })
        }
        console.log(solution("onetwothreefourfivesixseveneightnine"));
        //123456789
    }

 

ex2)

    {
        function solution(numbers) {
            const obj = {
                zero: 0,
                one: 1,
                two: 2,
                three: 3,
                four: 4,
                five: 5,
                six: 6,
                seven: 7,
                eight: 8,
                nine: 9,
            }
            return +numbers.replace(/zero|one|two|three|four|five|six|seven|eight|nine/g, (v) => {
                return obj[v]
            })
        }
        console.log(solution("onefourzerosixseven"));
        //14067
    }

 

 

출처:https://school.programmers.co.kr/