TIL - 20.10.19 (알고리즘 풀이)

예니·2020년 10월 18일
0

TIL

목록 보기
9/25

JS 문법 익히는 겸 프로그래머스 사이트에서 몇 문제 풀었다.
같은 문제를 JS, 파이썬 둘다 풀어보려했는데 하다보니
오히려 그게 더 헷갈려서 그냥 JS만 진행

문제출처 (프로그래머스)
https://programmers.co.kr/

1. 서울에서 김서방 찾기 lv.1

❓ 문제

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

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

⭕ 내 풀이

function solution(seoul) {
  var answer = '';
  for (var i=0; i<seoul.length; i++){
    if(seoul[i] === "Kim"){
      answer = `김서방은 ${i}에 있다`;
      break;
    }
  }
  return answer;
}

2. 가운데 글자 가져오기 lv.1

❓ 문제

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.

  • 제한사항
    s는 길이가 1 이상, 100이하인 스트링입니다.

⭕ 내 풀이

function solution(s) {
  var answer = '';
  if (s.length % 2 == 1){
    answer = s[parseInt(s.length / 2)];
  }
  else{
    answer = s[(s.length / 2) - 1] + s[s.length / 2] ;
  }
  return answer;
}

JS 나누기에서 몫만 구하려면 parseInt로 정수형으로 변환
길이 홀수일 때, 버림하면되니까 Math.floor 써도 됨

3. 수박수박수박수박수박수? lv.1

❓ 문제

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

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

⭕ 내 풀이

function solution(n) {
  var answer = '';
  var watermelon = "수박";
  answer = watermelon.repeat(n);
  answer = answer.slice(0, Math.ceil(answer.length/2));
  return answer;
}

0개의 댓글