본문 바로가기

자바스크립트 알고리즘6

<JavaScript> 나누어 떨어지는 숫자 배열 sort() 메소드에 콜백함수 반환 값은 a>b가 아니라 a-b로 해야지 1,0,-1 판단 가능해서 오름차순 정렬 가능함. if 문을 2개 사용해서 풀었는데 다른 풀이를 보니 filter()함수를 활용하면 더 간단하게 작성가능해보여서 설명하고자함 https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/filter Array.prototype.filter() - JavaScript | MDN filter() 메서드는 주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환합니다. developer.mozilla.org filter()함수 array.filter(callback함수) callback함수.. 2023. 3. 18.
<JavaScript> 문자열 내 개수 비교 문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다. 제한사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. 입출력 예sanswer "pPoooyY" true "Pyy" false 입출력 예 설명 입출력 예 #1 'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return 합니다.. 2023. 3. 17.
JavaScript <자릿수더하기> 내 풀이 = 1. 정수를 문자열로 변환(String()) --> 2. 문자열을 배열로 변경(Array.from()) -->3.반복문 안에서 문자로 구성된 배열을 다시 정수로 변경(parseInt()) 후에 모두 더함. new String() 은 배열을 반환하고, String()은 문자열을 반환해준다. 정수를 정수 배열로 만들어주는 방법도 있는데.. -> 인자를 Number() 안에 넣어서 정수로 반환해주는 mapFn함수를 생성해서 Array.from(str,mapFn) 활용하기(아직 익숙하지가 않다..) 2023. 3. 16.
JavaScript<중복문자제거> 배열 요소 삭제를 위해 스프레드 연산자로 문자열을 배열로 바꿈 이중 반복문을 통해 배열 요소 비교를 통해 중복 문자를 찾으려고 함. 배열의 splice()메소드를 활용해서 중복 문자를 제거하려고 했는데 첫번째 중복문자와 두번째 중복문자가 붙어있을 때 생략하고 넘어가버림 --> splice메소드가 배열 요소를 삭제하면 바로 배열의 순서가 땡겨지기 때문. 그렇다고 중복 문자열을 제거한 후에 j--를 이용하면 무한 루프 생성. 풀이 실패! --> 아닌 것 같으면 아예 다른 방식으로 접근하는 게 필요하다고 생각, 계속 매달려봤자 답이 안나온다.. indexOf를 활용한 풀이 indexOf는 String의 메소드인데 자세한 것은 아래 사이트를 참고! https://developer.mozilla.org/ko/do.. 2023. 3. 14.
JavaScript <대문자찾기> 입력받은 배열을 대문자로 모두 바꿔서 ex에 배열로 저장한 후에, 스프레드 연산자를 이용해서 문자열을 배열로 바꿈. 배열 arr1에는 대문자 배열 arr2에는 기존 단어를 배열로 바꿔서 저장한 후에 for문 안에서 비교를 통해 대문자 갯수 일치여부를 판단해서 결괏값 도출! +아스키 코드로도 찾을 수 있다고 한다. ++toUpperCase 메소드는 문장뿐만 아니라 문자에도 적용 가능. 2023. 3. 12.
JavaScript <일곱난쟁이> 풀이 성공! console.log로 일일이 확인하면서 풀 수 있는게 JS의 장점인 것 같다. 출력값이 중간에 어떻게 나오는지 확인했더니 풀이 가능! 1차 풀이 실패 후 2차 풀이 힌트는 결국 배열 안에 있는 요소를 서로 확인하면서 풀어야 한다는 데에서 얻었다.(for문 안에 for문) 합계 구할 때 초기값 안주면 NaN 발생. arr.slice()메소드를 직접 활용해봤다. 첨가, 삭제 모두 가능한 메소드 --> 그런데 두 개의 값을 뺄 때는 첫번째 값이 먼저 삭제되면 두 번째 값은 그만큼 보정을 해서 빼야하기 때문에 i가 j보다 무조건 작을 수밖에 없는 수라서 j-1을 활용해서 보정해봤는데 다른 방법이 없는지 확인해볼 예정. --> 찾아본 결과 ! 생각을 간단하게 해보면 j>i이기때문에 arr.slice.. 2023. 3. 12.