프로그래머스 lv1
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
예를들어 str이 1234이면 1234를 반환하고, -1234이면 -1234를 반환하면 됩니다.
str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다.
function solution(s) { const answer = s*1; return answer; };
function strToInt(str){ return str/1 }
function strToInt(str){ return +str; }
function strToInt(str){ var result = Number(str); return result; }
더 간단하게!!
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
s | return |
---|---|
"abcde" | "c" |
"qwer" | "we" |
function solution(s) {
const halfIndex = s.length/2;
let answer = '';
if(Number.isInteger(halfIndex)){
answer = s[halfIndex-1]+s[halfIndex];
} else {
answer = s[Math.floor(halfIndex)]
}
return answer;
}
function solution(s) {
return s.substr(Math.ceil(s.length / 2) - 1, s.length % 2 === 0 ? 2 : 1);
}
str.substr(start[, length])_
substr(): 메서드는 문자열에서 특정 위치에서 시작하여 특정 문자 수 만큼의 문자들을 반환합니다.
String.prototype.substr()는 웹 표준에서 제거된건 아니지만 사용하지말라고 되어있다. 그래도 알고 사용하지 않는 것과 모르고 사용하지 않는 것은 다르니까!
또 비슷한 기능을 substring()메소드 를 통해서 구현해낼 수 있다. -> 다른 풀이 #2
function solution(s) { let sLength = Math.floor(s.length / 2); if (s.length % 2 === 0) { return s.substring(sLength - 1, sLength + 1); } else { return s.substring(sLength, sLength + 1); } }
✔️ str.substring(indexStart[, indexEnd])
- 인자값
- indexStart
: 반환문자열의 시작 인덱스- indexEnd( Optional )
: 반환문자열의 마지막 인덱스 (포함하지 않음.)- 반환값
기존문자열의 부분 문자열을 반환합니다.
다른 풀이 #2를 연산자 % 와 charAt() 를 사용하여 조금 더 간결하게 쓸 수 있다.
function solution(s) { const halfIndex = s.length/2; return halfIndex%1? s.charAt(Math.floor(halfIndex)): s.substring(halfIndex-1, halfIndex+1); }
나머지 연산자% 를 통해서 1로 나누었을때 정수가 아니라면 1로 나누었을때 나머지가 있다는 것을 이용.
: charAt() 함수는 문자열에서 특정 인덱스에 위치하는 유니코드 단일문자를 반환합니다.
✔️ str.charAt(index)
- 매개변수
: 0과 문자열의 길이 - 1 사이의 정수값.
: 인자를 생략하면 기본값으로 0를 설정되고 첫 문자를 반환한다.- 반환 값
: 지정된 인덱스에 해당하는 유니코드 단일문자를 반환한다.
: 만약 인덱스가 문자열 길이보다 큰 경우 빈 문자열 (예) " " 을 반환한다.
나머지 연산자(remainder operator)는 % 기호로 나타내지만, 비율을 나타내는 퍼센트와 관련이 없습니다.
나머지 연산자를 사용한 표현식 a % b는 a를 b로 나눈 후 그 나머지(remainder)를 정수로 반환해줍니다.
기초 중의 기초도 모르는 것이 많은 것 같다. 열심히, 빠르게 배워가야겠다.