본문 바로가기
코딩테스트/LV. 1

LV. 1 :: 완주하지 못한 선수

by KUROMI98 2023. 1. 27.

https://school.programmers.co.kr/learn/courses/30/lessons/42576

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

function solution(participant, completion) 
{
    var arr = [];
    participant.sort(); // 사전순서대로 정렬해준다.
    completion.sort(); // 사전순서대로 정렬해준다.
    for (i=0;i<participant.length; i++)
    { // participant 전체에 대해
        if (participant[i]!==completion[i])
        { // completion과 다른 원소를 발견하면
            arr.push(participant[i]); 
            // 그 원소를 arr에 push하고
            break; // 루프를 중지한다
        }
    }
    return arr.join('');
    // arr을 문자열로 바꿔 return한다.
}

사전순서대로 정렬하면 for문 여러개 안써도 빨리 해결할 수 있음.


이거 썼는데 효율성 테스트에서 실패 떴음

function solution(participant, completion) 
{
    for (i=participant.length; i>=0; i--)
    {
        for(j=completion.length; j>=0; j--)
        { // participant와 completion의 모든 원소들에 대해,
            if (participant[i]==completion[j])
            { // 원소가 같다면
                participant.splice(i,1); 
                // participant에서도 그 원소를 삭제해 주고
                completion.splice(j,1);
                // completion에서도 그 원소를 삭제해 준다.
            }
        }
    }
    
    return participant.join('');
}

'코딩테스트 > LV. 1' 카테고리의 다른 글

LV. 1 :: 2016년  (0) 2023.01.27
LV. 1 :: 이상한 문자 만들기  (0) 2023.01.27
LV. 1 :: 최대공약수와 최소공배수  (0) 2023.01.24
LV. 1 :: 문자열 다루기 기본  (0) 2023.01.24
LV. 1 :: 합성수 찾기  (0) 2023.01.24

댓글