일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- react-router-dom
- chart.js
- 접근성
- 포트폴리오
- ROUTER 버전6
- 대표님물리기없기
- classList toggle
- className
- 를
- windowwidth
- resize
- react-router
- 퍼블리싱
- 냥빨이다가온다
- 언젠간가겠지
- react
- 간식금지다!
- 리엑트할수있는퍼블리셔라규
- 2020
- 클래스 토글
- 커스텀훅
- classList
- 안짤렸다
- chart responsive
- classList add
- classList remove
- 내배위의고양이
- 방심은금물
Archives
- Today
- Total
틈
[2021-04-29] 빠진 알파벳 찾기 본문
Question :
순서대로 진행하는 알파벳 글자 중에서 빠진 것 찾기
My Answer :
function findMissingLetter(array){
var alphabet = "abcdefghijklmnopqrstuvwxyz";
var letterA = [];
var upperCaseCheck;
var arrayIn = [];
if(array[0].charCodeAt(0) === array[0].toUpperCase().charCodeAt(0)){
upperCaseCheck = true;
} else {
upperCaseCheck = false;
}
for(var i = 0;i < alphabet.length;i++){
letterA.push(alphabet[i]);
}
for(var i = 0;i < array.length;i++){
var arrayLower = array[i].toLowerCase();
arrayIn.push(arrayLower);
}
//첫단어 시작 키값
var first = arrayIn[0];
var arrayLength = arrayIn.length;
var arrFirst;
var last = arrayIn[arrayLength-1];
var arrLast;
for(var i = 0;i < letterA.length;i++){
if(first === letterA[i]){
arrFirst = i;
}
if(last === letterA[i]){
arrLast = i;
}
}
var sequentialArray = letterA.slice(arrFirst,(arrLast + 1));
var resultArray = sequentialArray;
for(var i = (sequentialArray.length-1);i >= 0 ;i--){
for(var j = (arrayLength-1);j >= 0;j--){
if(sequentialArray[i] === arrayIn[j]){
resultArray.splice(i,1);
}
}
}
var resultUpperCase = [];
var result;
if(upperCaseCheck){
for(var i = 0;i < resultArray.length;i++){
resultUpperCase.push(resultArray[i].toUpperCase());
}
result = resultUpperCase.join(",");
} else {
result = resultArray.join(",");
}
return result;
}
AnotherAnswer1 :
function findMissingLetter(array)
{
var i=array[0].charCodeAt();
array.map(x=> x.charCodeAt()==i?i++:i);
return String.fromCharCode(i);
}
AnotherAnswer2 :
function findMissingLetter(array) {
let first = array[0].charCodeAt(0)
for (let i = 1; i < array.length; i++) {
if (first + i !== array[i].charCodeAt(0)) {
return String.fromCharCode(first + i)
}
}
throw new Error("Invalid input")
}
유니코드 넘버값을 얻어서 빠진 값을 추출해주면 되는 문제입니다. 그 방법을 몰라서 array에 알파벳순서를 넣어주고 이 순서와 맞지 않는 값을 걸러내는 작업으로 진행했습니다. 비슷한 코드가 들어갔지만, 해당 방법을 몰라서 코드가 길어졌습니다.
알고리즘을 배우는 이유를 뼈져리게 느끼는 프로젝트였습니다.
'code > Daily Side Project' 카테고리의 다른 글
[2021-05-05] 여러 자릿수의 숫자를 한자리로 만들기 (0) | 2021.05.05 |
---|---|
[2021-05-04] 두 객체의 value 비교 (0) | 2021.05.04 |
[2021-05-03]괄호 닫힘 확인 예제 (0) | 2021.05.03 |
[2021-05-03] 짝수/홀수 분별하기 (0) | 2021.04.30 |
[2021-04-29] 숫자로 상태 추출 (0) | 2021.04.29 |
Comments