level 1. 삼각형 출력하기

|

level 1. 삼각형 출력하기

출처 : http://tryhelloworld.co.kr/challenge_codes/101

문제

printTriangle 메소드는 양의 정수 num을 매개변수로 입력받습니다. 다음을 참고해 *(별)로 높이가 num인 삼각형을 문자열로 리턴하는 printTriangle 메소드를 완성하세요 printTriangle이 return하는 String은 개행문자(‘\n’)로 끝나야 합니다.

높이가 3일때

*
**
***

풀이

function printTriangle(num) {
  var result = ''
  for(var i = 0; i < num; i++){
  	for(var j = 0; j <= i; j++){
    	result += '*'
    }
    result += '\n'
  }
  return result
}

다른사람 풀이

function printTriangle(num) {
  var result = ''
  for(var i=num; i--;) {
    result += '*'.repeat(num-i) + '\n';
  }
  return result
}

배운점

level 1. 문자열 내 p와 y의 개수

|

문자열 내 p와 y의 개수

출처 : http://tryhelloworld.co.kr/challenge_codes/96

문제

numPY함수는 대문자와 소문자가 섞여있는 문자열 s를 매개변수로 입력받습니다. s에 ‘p’의 개수와 ‘y’의 개수를 비교해 같으면 True, 다르면 False를 리턴하도록 함수를 완성하세요. ‘p’, ‘y’ 모두 하나도 없는 경우는 항상 True를 리턴합니다. 예를들어 s가 “pPoooyY”면 True를 리턴하고 “Pyy”라면 False를 리턴합니다.

풀이

function numPY(s){
  var result = false;
 	var p = /p/gi; // global, insensitive flag
  var y = /y/gi; // 모든값, 대소문자 구분없이

	if ((s.match(p).length === s.match(y).length) ||
      (s.match(p), s.match(y) === null)){
      	result = true;
      }

  return result;
}


// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log( numPY("pPoooyY") )
console.log( numPY("Pyy") )

배운점

  • String.match(RegExp) 메소드는 정규표현식을 검색해 배열로 리턴한다.
  • 문자열 내에 정규표현식이 없으면 null을 리턴한다.
  • 모든 결과를 리턴하고 싶으면 정규표현식에 g 옵션을 붙인다.
  • RegExp.exec(String) 메소드는 정규표현식에 g옵션을 붙인 경우, 하나의 결과만 리턴한다. 하지만 여러번 메소드를 실행하면서 각 검색 결과에 접근 가능하다.
    • If your regular expression uses the “g” flag, you can use the exec() method multiple times to find successive matches in the same string.

level 1. 문자열 다루기 기본

|

level 1. 문자열 다루기 기본

출처 : http://tryhelloworld.co.kr/challenge_codes/99#

문제

alpha_string46함수는 문자열 s를 매개변수로 입력받습니다. s의 길이가 4혹은 6이고, 숫자로만 구성되있는지 확인해주는 함수를 완성하세요. 예를들어 s가 “a234”이면 False를 리턴하고 “1234”라면 True를 리턴하면 됩니다

풀이

function alpha_string46(s){
  var result
	// result = (s.length === 4 || s.length === 6) && !isNaN(s) : true : false;
  if((s.length === 4 || s.length === 6) && !isNaN(s)){
  	result = true
  } else
    result = false
  return result;
}

다른사람 풀이

function alpha_string46(s){
  var result = false;
  if((s.length == 4 || s.length == 6) && /^[0-9]+$/.test(s)) {
    result = true;
  }

  return result;
}

배운점