Algorithm | 문자열 ⇨ 정수, 가운데 글자 가져오기
프로그래머스 lv1
1. 문자열 ⇨ 정수
문제설명
문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.
제한조건
- s의 길이는 1 이상 5이하입니다.
- s의 맨앞에는 부호(+, -)가 올 수 있습니다.
- s는 부호와 숫자로만 이루어져있습니다.
- s는 0으로 시작하지 않습니다.
입출력 예
예를들어 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; }
결론
더 간단하게!!
2. 가운데 글자 가져오기
문제 설명
단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다.
제한 조건
- s는 길이가 1 이상, 100 이하인 스트링입니다.
입출력 예
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;
}
다른 풀이 #1 🚫
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
다른 풀이 #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()
✔️ str.substring(indexStart[, indexEnd])
- 인자값
- indexStart
: 반환문자열의 시작 인덱스- indexEnd( Optional )
: 반환문자열의 마지막 인덱스 (포함하지 않음.)- 반환값
기존문자열의 부분 문자열을 반환합니다.
다른 풀이 #3
다른 풀이 #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로 나누었을때 나머지가 있다는 것을 이용.
- str.charAt()
: charAt() 함수는 문자열에서 특정 인덱스에 위치하는 유니코드 단일문자를 반환합니다.
✔️ str.charAt(index)
- 매개변수
: 0과 문자열의 길이 - 1 사이의 정수값.
: 인자를 생략하면 기본값으로 0를 설정되고 첫 문자를 반환한다.- 반환 값
: 지정된 인덱스에 해당하는 유니코드 단일문자를 반환한다.
: 만약 인덱스가 문자열 길이보다 큰 경우 빈 문자열 (예) " " 을 반환한다.
- 나머지 연산자 %
나머지 연산자(remainder operator)는 % 기호로 나타내지만, 비율을 나타내는 퍼센트와 관련이 없습니다.
나머지 연산자를 사용한 표현식 a % b는 a를 b로 나눈 후 그 나머지(remainder)를 정수로 반환해줍니다.
결론
기초 중의 기초도 모르는 것이 많은 것 같다. 열심히, 빠르게 배워가야겠다.
Author And Source
이 문제에 관하여(Algorithm | 문자열 ⇨ 정수, 가운데 글자 가져오기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kihyeon8949/Algorithm-문자열-숫자저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)