1. 문제 설명
CS 스터디 팀장이 된 지용이는 팀원들의 연락처를 수집하여 정리하는 도중 문제 하나를 발견했다.지용이는 팀원들에게 전화번호를 ‘010-1234-4567’ 양식으로 제출하기를 부탁했지만 ‘01012345678’과 같이 ‘-’ 구분 없이 붙여서 제출한 사람들의 전화번호가 엑셀에서 앞에 0이 사라진 ‘1012345678’로 보이는 것이다.지용이는 ‘1012345678’로 저장된 전화번호를 다시 ‘010-1234-5678’ 형식으로 바꾸려고 한다.지용이를 도와줄 수 있는 알고리즘을 만들어 보자
2. 제한 조건
phone은 length는 10으로 고정됩니다.
3. 예시
입력/출력
4. 풀이
[slice 활용]
- 앞자리에 문자열 0을 더해주고
- 들어오는 문자열 번호에서 slice를 통해 0번째부터 2번째 내까지 가져오고
- 문자열 하이픈 더하기
- 그다음도 같은 원리로 반복했다.
- 숫자로 된 문자열은 index값을 사용할 수 있어서 바로 진행했다.
function solution(phone){
let result="";
return result = "0" + phone.slice(0,2) + "-" + phone.slice(2,6) + "-" + phone.slice(6)
}
console.log(solution("1062509911"))
console.log(solution("1012345678"))
console.log(solution("1032501800"))
[팀원 분의 풀이]
function solution(phone){
let result=""
phone = phone.match(/\d/g) //[1,0,6,2,5,0,9,9,1,1]
phone.unshift('0') //[0,1,0,6,2,5,0,9,9,1,1]
phone.splice(7, 0, '-') //[0,1,0,6,2,5,0,-,9,9,1,1]
phone.splice(3, 0, '-') //[0,1,0,-,6,2,5,0,-,9,9,1,1]
result = phone.join('') //[010-6250-9911]
return result;
}
console.log(solution("1062509911"))
[다양한 풀이들]
function solution(phone){ //핸드폰 번호 가리기 참고
let result=""
let num=""
for (let i = 0; i < 10; i++)
if (i < 1) { //0번째 자리에는 01 추가
num += "01"
} else { //뒤에서 아홉번째 자리부터는 주어진 숫자 그대로
num += phone[i]
};console.log(num, typeof(num))
if(num.length===11){
result += num.substr(0,3); //인덱스0에서부터 길이가3 010
result += "-";
result += num.substr(3,4); //인덱스3에서부터 길이가4 6250
result += "-";
result += num.substr(7); //인덱스7부터 마지막까지 9911
}
return result;
}
console.log(solution("1062509911"))
function solution(phone) {
let result = ""
var temp = ""
temp = "0" + phone
result = `${temp.slice(0,3)}-${temp.slice(3,7)}-${temp.slice(7,11)}`
return result;
}
console.log(solution("1062509911"))
'개발 공부 > 알고리즘' 카테고리의 다른 글
220620 [알고리즘] 백준, 프로그래머스 깃허브 연동 / 백준허브 사용 (0) | 2022.06.20 |
---|---|
[항해 99 알고리즘 테스트] "2번. 몇 시간 몇 분 했더라?" JavaScript / Math.floor() (0) | 2022.03.17 |
[프로그래머스 알고리즘] "콜라츠 추측" JavaScript / while, for (0) | 2022.03.16 |
[프로그래머스 알고리즘] "정수 제곱근 판별" JavaScript / Math.sqrt (), Math.pow() (0) | 2022.03.16 |
[프로그래머스 알고리즘] "하샤드 수" JavaScript / toString, split, reduce (0) | 2022.03.16 |