스터디/코딩테스트 86

javascript 코딩테스트 - 인덱스 바꾸기

처음에 든 생각 - for loop을 돌려야겠다. - 순서가 중요하니깐 뭔가 배열로 하면 편할 듯? 나의 답 먼저 string을 배열로 다 쪼갠다. 그리고 교체 대상의 데이터들을 tmp1, 2로 각각 따로 빼놓고 splice 메소드를 통해서 바꿔보자. (처음에 for 써야되나 싶었는데 splice에 교체할 수 기능이 있는게 생각남) 그렇게 해서 배열 안에서 위치를 바꿔준다음에 다시 문자열로 바꿔주면 끝 참고 보고 무슨 소리인가 했다. 배열의 구조분해를 활용한 풀이였다. 이게 뭔가 싶어서 바로 구글링했더니 이런 게 있었다. 구조분해를 통해서 값을 교환할 수 있는 문법이 있었다. 궁금해서 여러개인 것도 해봤는데 똑같이 된다. arr[1]에 있던게 세번째로 가고 arr[2]에 있던게 두번째로 가고 arr[3]..

javascript 코딩테스트 - 영어가 싫어요

처음 든 생각 - 영어 단어들을 어떻게 나눠야될까 - tmp라는 임시변수를 만들어서 그걸로 숫자를 하나씩 넣어줘야겠다 - 숫자로 변환할 때 배열로 만들어서 index 참조하면 딱이네 나의 답 numberArr라고 해서 전부 다 넣어주었다. 그렇게 해서 해당하는 index를 불러오려고 생각했다. tmp라는 임시변수를 통해서 일단 numbers에 있는 애들을 계속 넣어준다. 그리고 tmp가 numberArr에서 발견되면 해당하는 숫자를 answer에 추가해주고 다시 tmp는 비워준다. answer의 결과가 문자열이므로 숫자로 변환하면 끝 참고 다른 사람 풀이인데 object + 정규표현식으로 풀었다. 그리고 replace 메소드를 활용하였다. replace라는 메소드 자체를 되게 생소하게 생각하고 있었다. ..

javascript 코딩테스트 - 대문자와 소문자

처음에 생각했던 것 - 반복문을 돌려야겠다 - 전환해주는 메소드가 있지 않을까? (찾아봤는데 없는 듯) - 그 메소드를 잘 모르겠으면 그냥 toLowerCase 랑 toUpperCase 써야겠다. 나의 답 function solution(my_string) { var answer = ''; for(let i of my_string){ if(i === i.toLowerCase()){ answer += i.toUpperCase() } else { answer +=i.toLowerCase() } } return answer; } 반복문을 돌면서 소문자인지 아닌지 확인을 하고 맞으면 대문자로 변환하고 대문자면 소문자로 변환하는 조건문이다. 개쉬웠다.

javascript 코딩테스트 - 369게임

처음에 든 생각 - order에 있는 문자를 하나하나씩 비교해줘야되니깐 배열로 바꿔서 map을 써야겠다. - 3,6,9 여부를 활용하기 위해서 include를 써야겠다 나의 답 function solution(order) { var answer = 0; String(order).split("").map((n)=> { if(['3','6','9'].includes(n)){ answer++ } }) return answer; } order이 숫자이기 때문에 string으로 변환하고 split을 통해서 배열로 만들어주었다. 그 다음 각각이 원소가 3,6,9인지 아닌지에 따라서 answer 값 도출

javascript 코딩테스트 - 가까운 수

이걸 보고 처음 든 생각 - 반복문을 통해서 array에 있는 애들을 하나씩 비교해줘야겠다 - 차이니깐 절대값을 써야하므로 Math.abs 가 필요하다 나의 답 function solution(array, n) { var answer = 0; for(let k of array){ if(Math.abs(answer-n) k ? k : answer } else { answer = k } } return answer; } for of 구문을 통해서 array에 있는 원소들을 하나씩 뽑아내었고 절대값을 비교하여 작은 녀석을 answer에 할당한다. 처음에 풀이할 때 실수한 부분이기도 한데 제한사항 4번째에 해당하는 조건을 빼먹었었다. 절댓값이 같으면 answer이랑 k 중 작는 애를 할당하는 조건문을 추가했다.

728x90