기초부터 시작하는 코딩/Programmers

Programmers 문제를 풀어봅시다. Day19

kebab00 2023. 6. 4. 21:09

728x90

1.한 번만 등장한 문자

문자열 s가 매개변수로 주어집니다. 

s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 

한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.

function solution(s) {
    let answer = [];
    for (let i = 0; i < s.length; i++) {
        if (s.indexOf(s[i]) === s.lastIndexOf(s[i])) {
            answer.push(s[i])
        }
    } return answer.sort().join('')
}

- for 루프를 사용하여 문자열 s를 인덱스 i를 기준으로 순회합니다.
- indexOf 메서드를 사용하여 s에서 문자 s[i]의 첫 번째 등장 위치를 찾습니다.
- lastIndexOf 메서드를 사용하여 s에서 문자 s[i]의 마지막 등장 위치를 찾습니다.
- indexOf와 lastIndexOf의 결과가 동일한 경우, 즉 해당 문자가 s에서 한 번만 등장하는 경우, answer 배열에 해당 문자를 추가합니다.
- answer 배열을 정렬한 후 join 메서드를 사용하여 문자열로 변환합니다.연결합니다.

2.약수 구하기

정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.

function solution(n) {
    let answer = [];
    
    for (i=1; i <= n; i++) {
        if (n % i === 0) {
            answer.push(i);
        }
    }
    return answer;
}

 

- for 루프를 사용하여 1부터 n까지의 숫자를 순회합니다.
- if 문을 사용하여 n을 i로 나눈 나머지가 0인지 확인합니다. 이는 i가 n의 약수인지 확인하는 조건입니다.
- n을 i로 나눈 나머지가 0인 경우, i는 n의 약수이므로 answer 배열에 추가합니다.
- for 루프가 종료되면 모든 약수가 answer 배열에 저장되어 있습니다.

3.문자열안에 문자열

문자열 str1, str2가 매개변수로 주어집니다. str1 안에 str2가 있다면 1을 없다면 2를 return하도록 solution 함수를 완성해주세요.

function solution(str1, str2) {
    if (str1.includes(str2)) {
        return 1;
    } else {
        return 2;
    }
}

- str1 문자열에 str2가 포함되어 있는지 확인하기 위해 includes 메서드를 사용합니다. 
- includes 메서드는 문자열에 특정 문자열이 포함되어 있는지를 판별하여 true 또는 false를 반환합니다.
- 만약 str1에 str2가 포함되어 있다면, 즉 조건을 만족한다면 1을 반환합니다.
- 조건을 만족하지 않는 경우, 즉 str1에 str2가 포함되어 있지 않은 경우 2를 반환합니다.