[Js] 프로그래머스 prac8

이성규·2022년 11월 23일
0

✅ 서울에서 김서방 찾기

  • 문제 설명
    String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

  • 제한 사항
    seoul은 길이 1 이상, 1000 이하인 배열입니다.
    seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
    "Kim"은 반드시 seoul 안에 포함되어 있습니다.

  • 입출력 예

     seoul	              return
["Jane", "Kim"]	     "김서방은 1에 있다"

🔷 풀이

function solution(seoul) {
    let answer = seoul.indexOf('Kim'); // indexOf()메서드를 사용하여 문자열 'Kim'찾기
    return "김서방은 " + answer + "에 있다";
};
  • indexOf() 를 사용하여 풀었는데 indexOf() 는 특정 문자열이 나타나는 위치를 알려주는 메서드를 사용하였다.

🔶 indexOf()

string.indexOf(searchvalue, position)
  • indexOf 함수는, 문자열(string)에서 특정 문자열(searchvalue)을 찾고,
    검색된 문자열이 '첫번째'로 나타나는 위치 index를 리턴한다
  • 파라미터
    searchvalue : 필수 입력값, 찾을 문자열
    position : optional, 기본값은 0, string에서 searchvalue를 찾기 시작할 위치
  • 찾는 문자열이 없으면 -1을 리턴합니다.
  • 문자열을 찾을 때 대소문자를 구분합니다.

✅ 수박수박수박수

  • 문제 설명
    길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다.

  • 제한 조건
    n은 길이 10,000이하인 자연수입니다.

입출력     예
n	    return
3	   "수박수"
4	   "수박수박"

🔷 풀이

function solution(n) {
    let answer = '';  // 초기값 선언
    for(let i = 0; i < n; i++){   // n의 길이 10000이하의 자연수까지
        answer += i % 2 === 0 ? '수' : '박' // 홀수에는 '수', 짝수엔  '박'의 패턴 필요
    }                                      
    return answer;
}

✅ 완주하지 못한 선수

  • 문제 설명
    수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.

  • 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.

  • 제한사항
    마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.
    completion의 길이는 participant의 길이보다 1 작습니다.
    참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.
    참가자 중에는 동명이인이 있을 수 있습니다.

  • 입출력예

🔷 풀이

function solution(participant, completion) {
    let answer = '';
    participant.sort() // 참가 선수 배열
    completion.sort()  // 완주 선수 배열
    for(let i = 0; i < participant.length; i++){ // 인덱스 0부터 두 배열 비교
        if(participant[i] !== completion[i]){  //  참가자 != 완주자일 경우, 참가자로 리턴
            return participant[i]
        }
    }
    
    return answer;
}
profile
개발자를 위한 발걸음

0개의 댓글