프로그래머스 | Lv.1_연습문제_Part.5_JS

김명성·2021년 10월 28일
0

Algorithm

목록 보기
41/61
post-thumbnail

난이도 : Level. 1
언어 : Javascript
출제 내역 : 연습문제

전체 풀이 코드 👈🏻 클릭시 Github로 이동

❓ Question 1

서울에서 김서방 찾기

  • 주어진 배열에서 Kim을 찾아 문장 완성하기

📝 My Solution 1

function solution(seoul) {
  var answer;
  return (answer = "김서방은 " + seoul.indexOf("Kim") + "에 있다");
}

indexOf() 함수를 활용해서 문장을 완성했습니다.

결과


❓ Question 2

문자열 다루기 기본

  • 임의의 문자열이 숫자로만 이루어졌는지 판별

📝 My Solution 2

function solution(s) {
    let answer = true;
    const newArr = s.split('')
    if (newArr.length === 4 || newArr.length === 6) {
        for (let i = 0; i<newArr.length; i++) {
           if (isNaN(newArr[i]) === true) {
             answer = false
             break;
           }
          answer = true
        }
    } else {
        answer = false
    }
  return answer
}

우선 문자열의 길이가 4 혹은 6인지 판단을 먼저 하고,
문자열을 쪼개서 하나씩 숫자인지 아닌지 판별을 해줘서
하나라도 아닌게 있다면 바로 false를 출력했습니다.

function solution(s) {
	var regex = /^\d{6}$|^\d{4}$/;
  	return regex.test(s);
}

정규 표현식을 사용하면 이렇게도 풀수 있네요..;

결과


❓ Question 3

문자열 내림차순으로 배치하기

  • 문자열을 내림차순으로 정렬

📝 My Solution 3

function solution(s) {
    var answer = '';
    const newArr = s.split('')
    answer = newArr.sort((a,b) => {
        if (a>b) {
            return -1
        } if (a<b) {
            return 1
        } else {
            return 0
        }}).join('')
    return answer;
}

문자열을 분해해 주고, 내림차순으로 정렬한 뒤 다시 합쳤습니다.

결과


❓ Question 4

문자열 내 p와 y의 개수

  • 문자열에서 p와 y의 개수를 비교하자

📝 My Solution 4

function solution(s){
    var answer = true;
    const newArr = s.split('')
    const pCase = newArr.filter(a => a.toLowerCase().includes('p')).length
    const yCase = newArr.filter(a => a.toLowerCase().includes('y')).length
    
    if (pCase === yCase) {
        answer = true;
    } else {
        answer = false;
    }
    return answer;
}

문자열을 나눠주고, p가 있는 배열의 갯수, y가 있는 배열의 갯수를 비교해줍니다.

결과


❓ Question 5

문자열 내 마음대로 정렬하기

  • 배열로 들어온 문자열을 일정 기준을 줘서 정렬하기

📝 My Solution 5

function solution(strings, n) {
    let answer = strings.sort((a, b) => {
       if(a[n] > b[n]) return 1;
        if(a[n] < b[n]) return -1;
        if(a[n] === b[n]){
            if(a>b) return 1;
            if(a<b) return -1;
            return 0;
        }
    });
    return answer;
}

sort() 함수를 이용해서 문제를 풀이해 봤습니다.

결과

profile
잠재력은 핵폭탄급 Frontend Developer

0개의 댓글

관련 채용 정보