🏋🏽 문제 2차원 배열에서 문자열"B"의 위치정보를 요소로 같은 배열을 리턴 🔍 나의 풀이 - indexOf 메소드는 "B"문자열이 배열안에 있으면 인덱스 번호를 아니라면 -1를 반환한다. 1. 배열의 요소를 하나씩 돌면서 2. 요소에 "B"문자열이 존재하는지 검사를 한다. 3. 있다면 빈 배열 result에 요소의 인덱스 번호를 push 4. 그 요소 안의 "B" 문자열의 인덱스 번호를 push 5. result를 리턴한다. 💡알게된 점 - 레퍼런스보다 내 코드가 더 마음에 들 때도 있다!!!!!! - 하지만 indexOf("B")를 두번 써준거에서 레퍼런스한테 패했다 :( 중복을 줄이자~!!!!!!
🏋🏽문제 문자열을 요소로 갖는 배열을 입력받아 가장 짧은 문자열과 가장 긴 문자열을 제거한 배열을 리턴 🔍나의 풀이 일단 가장 짧은 문자열과 큰 문자열을 알아낸다. 1. arr[i].length는 20 이하라는 조건이 있었으므로 2. 반복문을 돌리면서 조건보다 같거나 작으면 해당 배열의 길이와 인덱스 번호를 변수에 저장한다. 3. 가장 긴 문자열도 반복문을 돌리면서 조건보다 같거나 크면 해당 배열의 길이와 인덱스 번호를 변수에 저장한다. 매개변수로 받은 배열에 for문을 돌려서 1. 해당 요소의 값이 최소길이 문자열과 같은데 자리가 다를 경우 배열에 추가 2. 해당 요소의 값이 최소, 최장문자열과 다르다면 배열에 추가 완성된 result값을 리턴 사실 이 코드는 똥인데 테스트 통과하기 위해서 우겨넣었다 ..
🏋🏽 문제 문자열을 입력받아 연속된 한자리 홀수 숫자 사이에 '-'을 추가한 문자열 리턴 🔍 나의 풀이 - 문자열을 한 글자씩 돌면서 - 짝수일경우 그대로 result에 추가 - 홀수일경우 다음글자도 홀수라면 하이픈과 함께 result에 추가 - 누적된 result값 리턴 - 아무래도 마지막 문자열의 다음 문자열이 없는데 if문에서 검사하는게 찝찝해서(?) 새로 짜본 코드 - 첫 문자열은 무조건 출력 - 두번째 문자열부터 돌면서 짝수일경우 result에 그대로 추가 - 홀수일경우 이전문자열 역시 홀수라면 결과값에 "-"를 숫자 앞에 붙여 result에 추가 - 누적된 result값 리턴 💡 깨달은점 - 두번째 풀이를 하면서 자바스크립트의 자동형변환 ㅡㅡ 을 다시금 느꼈다. 편하면서 편하지 않은 형 변환...
🏋🏽 문제 문자열을 입력받아 문자열 아래에 아래 중 하나가 존재하는지 여부를 리턴 1. 'a'로 시작해서 'b'로 끝나는 5의 문자열 2. 'b'로 시작해서 'a'로 끝나는 5의 문자열 🔍 나의 풀이 1. 대소문자를 비교하지 않는다고 하였으므로 모두 소문자로 바꿔준다. 2. a와 b자리의 위치를 for문을 이용해 찾아 변수에 할당한다. 3. 각 위치값의 차가 절대값 4인지 여부에 따라 boolean값 리턴 🔍 레퍼런스 1. n+4의 위치가 a고, n의 위치가 b일때 2. 혹은 그 반대일때 3. boolean 값 리턴한다. 오.....간단해... 💡알게된점! 절대값 구하기 Math.abs
🏋🏽문제 문자열을 입력받아 해당 문자열에 등장하는 두 칸의 공백을 모두 한 칸의 공백으로 바꾼 문자열을 리턴해야 합니다. 🔍나의 풀이 어제와 비슷한 패턴이었는데 '조건에 맞는 경우에만 추가해줘라'라고 깔끔하게 작성하고싶었으나 계속 복잡해져서 결국 continue를 썼다. 1. 빈 문자열일경우 빈 문자열 리턴하고 2. 반복문을 돌려서 i번째 자신이 빈 문자열이고 && i-1번째 역시 빈 문자열이면 무시 3. 아니라면 결과값에 추가하라 🔍레퍼런스 풀이 1. 전 문자열이 공백이 아니거나, 현재문자열이 공백이 아니라면 추가하라 2. 아닐경우 전 문자열에 공백을 추가한다 3. 다음 반복문에서 또 전 문자열이 공백인지 확인 후 추가하거나 무시하게된다. 나의 풀이랑 비슷한 패턴같아서 오늘은 정말로 참고만...!
🏋🏽 문제 2차원 배열(배열을 요소로 갖는 배열)을 입력받아 각 배열을 이용해 만든 객체를 리턴 🔍 첫 번째 풀이 function convertListToObject(arr) { if (arr.length === 1 && arr[0].length === 0) return {} //빈배열은 빈객체로 리턴 let obj = {}; for (let i = 0; i < arr.length; i++) { if(arr[i].length === 0 || arr[i][0] in obj ){ continue; //배열안의 요소의 요소가 비거나 이미 요소의 첫번째 값이 배열의 키로 들어가있다면 무시해라 }else { obj[arr[i][0]] = arr[i][1]; // {"배열의 첫번째 요소":"배열의 두번째 요소"} ..