Notice
Recent Posts
Recent Comments
Link
반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 5.3.8 Modifying Queries
- lastIndexOf()
- Robo3T 폰트 키우기
- ubuntu타임존
- 객체의키값만 찾기
- 프론트엔드 스쿨
- 가상컴퓨터마법사
- 배열을 객체로
- 우분투 시간 변경
- 리엑트블로거
- indexOf()
- Robo3T 글씨키우기
- 시퀄 문법
- 스프링 데이타 JPA
- 깃 토큰 만료
- ${변수}
- sql like연산자
- 문자열 인터폴레이션
- ...점점점문법
- Robo3T 폰트변경
- sql 문자열 패턴 검색
- 객체를 배열로
- 레디스 확인
- search()
- findIndex()
- js 문자열을 문자배열로
- 코딩 어?
- Robo3T 글씨체 변경
- 객체의 밸류값만 찾기
- @Moditying @Query
Archives
- Today
- Total
코딩기록
항해 11일) 알고리즘 테스트 본문
728x90
2문제 중 한문제를 선택, 코드풀이 영상url과 코드를 제출하는 방식으로 진행 되었다.
초기아이디어
문자열 -> split()으로 하나씩 배열에 담는다.
문자 배열 ->
답안
1번. 내가 제출한것
//phone- 1062509911
function solution(phone){
let long_num = phone;
let result="";
//하나씩 배열로 만들고
let plus_num = long_num.split("");
//"0"을 그 배열 앞에 추가
plus_num.unshift("0");
//배열원소를 하나로 합하고
let word = plus_num.join("");
//정규식 : 문자열에 나타는 특정 문자 조합과 대응시키기 위해 사용되는 패턴
//숫자 문자에 대응되는 \d를 써서3,4,4자리 숫자를 차례대로 찾고
//첫번째괄호를 찾고 $1, 하이픈 - 붙이기
let deviced_number = word.replace(/^(\d{3})(\d{4})(\d{4})$/, `$1-$2-$3`);
return result = deviced_number;
}
console.log(solution("1062509911"));
2번. 불필요한 변수를 줄인것 (팀원 답보고 매번 변수 선언할 필요 없다는걸 배움)
//phone- 1062509911
function solution(phone){
let result="";
let num = phone.split("");
num.unshift("0");
num = num.join("");
num = num.replace(/^(\d{3})(\d{4})(\d{4})$/, `$1-$2-$3`);
return result = num;
}
console.log(solution("1062509911"))
//////////////////////////////// 코드 풀이 /////////////////////////////
//phone- 1062509911
function solution(phone){
let result=""; //result를 비워 놓고
let num = phone.split(""); //split으로 하나하나 문자배열로 만들고
num.unshift("0"); //배열 맨 앞 엘리먼트에 "0"추가
num = num.join(""); //배열의 원소를 문자열로 합한걸 num에 넣고
//정규식 : 문자열에 나타는 특정 문자 조합과 대응시키기 위해 사용되는 패턴
//숫자 문자에 대응되는 \d 캐릭터를 써서3,4,4자리 숫자를 차례대로 찾고
//첫번째괄호를 $1로 찾고 하이픈 - 붙인다.
//정규식 리터럴(슬래쉬"/"로 감싸는 패턴)로 시작, 끝 앞뒤로 감싼다.
// ^(캐럿) → 라인 시작, $ → 라인 끝
//^(캐럿) 와 $(달러) 문자는 전체 문자열의 시작과 끝에 대응되는 것이 아니라
//각 라인의 시작과 끝에 대응된다.
//문자열 내부의 단어를 바꾸기 위해 replace() 메소드를 이용.
//치환 문자열로는 $1 과 $2 를 사용하고 있는데,
//이는 각각 첫 번째와 두 번째 괄호가 쳐진 부분에 대응된 문자열을 가리킨다.
// `` 백틱은 ""쌍따옴표, ''따옴표로 변경해도 된다.
//템플릿 리터럴을 사용할때 ( ` )백틱을 쓴다.
//문자열 및 변수 시작과 끝에 `백틱을 쓰고 변수는 ${변수}의 형식으로 쓴다.
//이렇게 문자열에 변수를 삽입할 수 있는 기능을 문자열 인터폴레이션(${변수}) 이라한다.
num = num.replace(/^(\d{3})(\d{4})(\d{4})$/, '$1-$2-$3');
return result = num;
}
console.log(solution("1062509911"))
let phone = "1062509911";
let result="0";
for(let i=0;i<phone.length;i++){
result += phone.charAt(i);
if(i == 1 || i == 5){
result += "-";
}
}
console.log(result);
//phone- 1062509911
function solution(phone){
let result="";
let num = phone.split("");
num.unshift("0");
num = num.join("");
num = num.replace(/^(\d{3})(\d{4})(\d{4})$/, `$1-$2-$3`);
return result = num;
}
console.log(solution("1062509911"))
function solution(phone) {
let result = '';
let arr = phone.split('');
arr.unshift('0');
arr.splice(3,0,'-')
arr.splice(8,0,'-')
arr = arr.join('');
result = arr;
return result;
}
console.log(solution("1062509911"))
참고
*캐럿과달러
앵커: 문자열의 시작 ^과 끝 $ (javascript.info)
*정규표현식
정규 표현식 - JavaScript | MDN (mozilla.org)
*템플릿리터럴
Javascript - ES6 (` : 템플릿 리터럴) 문자열에 변수 포함시키기 (tistory.com)
반응형
'항해99 > 챕터2 알고리즘' 카테고리의 다른 글
항해 10일)JS - 21프로그래머스 이상한 문자 만들기 (0) | 2022.01.19 |
---|---|
항해 8일)JS- 17프로그래머스- 문자열 다루기 기본 (0) | 2022.01.17 |
항해 8일)JS - 13프로그래머스 2016년 (0) | 2022.01.17 |
항해 6일)JS - 9프로그래머스 핸드폰 번호 가리기 (0) | 2022.01.15 |
항해 6일)JS - 5프로그래머스 문자열을 정수로 바꾸기 (0) | 2022.01.15 |
Comments