코딩테스트 9

; 을 안쓰면 일어나는 일...(split과 구조분해할당 에서 벌어진 일)

다른 사람의 풀이를 확인하다가 구조분해할당을 이용해서 문제를 푼 코드를 봤다. 한번 따라 풀어보려고 했는데, 계속 오류가 났다. 이상해서 답안을 복사해서 비교해 봤는데 다른게 없었는데도 계속 오류가 났고, 답안의 코드는 정상으로 작동했다. 🧐 뭔가 이상해서 다시 찬찬히 살펴봤는데 세미클론이 있고 없고의 차이가 있었다. function solution(my_string, num1, num2) { my_string = my_string.split(''); [my_string[num1], my_string[num2]]= [my_string[num2], my_string[num1]] return my_string.join('') } 결과는 정말 하늘과 땅차이 였는데 세미클론이 없는 경우에는 return 값으로 ..

코딩테스트 2023.09.26

가위바위보 프로그래머스 코딩테스트 문제

단순히 문자열을 받으면, 그 문자열 안에 내용을 해당하는 다른 값으로 바꿔 주면 되는거였다. 방법1. function solution(rsp){ let a = ''; [...rsp].map((e)=>{ a+= e==='2' ?e ='0' : e==='0' ? e='5' : e='2'; }).join('') return a } 일단 문자열 rsp를 spread operator를 이용해 풀어서 배열에 담아주고, map을 이용해 반복을 시켰다. 그리고서는 빈 문자열로 선언했던 변수 a에 값을 넣어주려 했다. [...rsp]의 요소 하나하나가 2인 경우에는 0을, 0인 경우에는 5를, 5인 경우에는 2를 넣어주려 했다. 여기서 주의할 점은 지금 [...rsp]의 요소 하나하나는 문자열인 상태이다. 그러니까 [...

코딩테스트 2023.09.21

최빈값 구하기__ 정답 풀이

레벨 0 문제였다. 그렇지만 오늘의 나는 혼자서 풀지 못했다..😂 이 문제를 씹어먹겠다는 ㅋㅋㅋㅋ 강한 의지로 답안을 하나하나 뜯어보았다😼 간단히 말하면 문제는 배열에 들어있는 값들 중 가장 많이 나온 값을 리턴하면 되고, 가장 많이 나온 값이 한개가 아닐 경우 -1을 리턴하면 되었다. 이 문제를 뜯어보려고 다른 사람들의 풀이를 살펴보다 보니 정말 풀이 방법이 다 달랐다. . 이제까지 내가 풀었던 문제 대부분은 풀이 유형이 3가지 정도로 정리되었다. 그만큼 배울게 많은 문제였다 😃😆 처음에 나는 빈 obj 설정후, 반복문으로 풀려고 했다. ㅋㅋㅋㅋ 그런데 4시간을 붇잡아도 계속 정답률이 100%가 나오지 않았다... 일단 정답을 살펴보자. 1. function solution(array) { let ar..

코딩테스트 2023.09.21

문자열의 끝에 이 문자가 있니? endWith() / substr()

.endWith() 문자열에서 특정 문자열로 끝나는지 확인할 때에 사용 결과값은 boolean으로 반환. str.endsWith(찾으려는 문자열[, length]) 여기서 length는 옵션이다. 찾고자 하는 문자열의 길이값을 넣어주면 되고, 아무것도 적지 않으면 문자열 전체 길이로 진행된다. .substr() 문자열의 특정 위치에서 시작해 특정 문자수 만큼 문자를 반환함. 추출하는 개념이다. str.substr(추출하려 하는 문자 시작 위치[, length]) 여기서 length는 옵션이다. 찾으려고 하는 문자들의 길이만큼 적어주면 된다.

코딩테스트 2023.09.13

"2개 숫자 모두 배수라면 1을 리턴해주세요" 공배수 문제 or연산자 이용한다구???

코테를 풀다 다른분 답안에 신기한게 있어서 뜯어보았다. 문제는 이랬다. 자 이제 이 답안을 뜯어보자. 일단 or 연산자에 대해 다시 살펴보자. OR 연산자. (기본이 2항 연산자임.) boolean 값을 반환한다. boolean 형이 아니면 boolean 으로 변환한다. 인수들 중 하나라도 true 이면 true를 반환한다. 모두 false 이면 false를 반환. OR 연산자 의 체인. 여러개인 경우. 피연산자가 여러개인 경우, 왼쪽에서 오른쪽으로 실행된다. 값이 true 인게 발견되면 바로 멈추고, 변환 전 원래의 값을 반환한다. 모든 값이 false인 경우 맨 마지막 피연산자를 변환전 원래값으로 반환한다. OR 연산자 의 단락평가. boolean 값을 반환한다. boolean 형이 아니면 boole..

코딩테스트 2023.09.13

비트 연산자 _ shift operator (<<)

처음에는 단순히 for문과 if문을 통해 풀었지만, 좀더 효율적인 방법이 있어 적는다. 일단 비교를 하자면, 1. for문과 if문으로 결과값 도출 __ 약 0.04ms 소요 2. while문과 연산자로 결과값 도출 __ 약 0.03ms 소요 3. 비트연산자 shift 연산자로 결과값 도출 __ 약 0.02ms 소요 2번 방법부터 봐보자. function solution(n, t) { while (t-- > 0) n*=2; return n; } while 문은 괄호 안의 조건이 성립하는 동안에는 계속해서 반복한다. a++ 연산자로 a+1 을 할 수 있듯, a-- 연산자로 a-1 을 할 수 있다. a+= 연산자로 더하기 할당을 할 수 있듯, a*= 연산자로 곱하기 할당을 할 수 있다. 3번 방법 funct..

코딩테스트 2023.09.08

함수의 파라미터로 받은 문자열을 obj 형식으로 알파벳 당 개수 보이게 만들기.

for문이랑 if문을 써야하는거 같은데 if문 설정을 어떻게 해야할지 몰랏다. 다양한 상황에서 if 문 설정하는걸 좀더 연습해야 겟다.. 과정.. 1. 함수 안에 빈 obj를 만들어 둔다. 2. spread 한 파라미터를 다른 변수에 담아두고, 그것을 반복시킴 3. 반복문 안에서 if문 시작하는데, 조건이 obj의 키가 e 일때, 값이 없을 때와, 값이 0보다 클 때로 나눈다. (값이 1과 같을때 라고 하면 제대로 세어지지 않는다. ) obj 의 키값을 불러올때 키가 변수로 되어있으면?? 1. obj.key 2. obj['key'] 이렇게 2가지 방식이 있는데, 변수를 넣을때에는 obj[key] 이렇게 넣으면 잘 작동하더라... hoi('ejjjejjspouk'); function hoi(a){ let ..

코딩테스트 2023.09.06

var / let / const 확실히 알기

예금을 5만원 미만인 경우 연 이자 15%, 5만원 이상인 경우 연 이자 20%일때, 예금에 따른 2년후 만기 금액을 계산해 주는 함수를 만들자. var money = 60000; function 예금(money){ var future = 0; if(money 0){ let a = money*1.15*1.15 future += a }else{ let a = money*1.2*1.2 future += a } return future; } console.log(예금(money)); 예금 문제 실패 이유 1. 무분별한 let 사용. money 같은 경우에는 함수에서 매개변수로 쓰임으로 var로 선언해야함. // 여기서 변수 선언방식에 따른 스코프의 차이가 있는데, // var..

코딩테스트 2023.06.26

perseInt() 함수 / JavaScript에서 입력값 string 타입으로 처리

1. 태조 이성계가 태어난 년도를 맞추면 성공 alert, 3번 이상 틀리면 멍청이 alert 보여주기. 답은 1335임 태조 이성계가 태어난 년도는? 제출 태조이성계 년도 문제 실패 이유 1. JavaScript에서 입력한 값은 기본적으로 string 타입으로 처리. 그래서 변환이 필요 >> perseInt() 함수 사용하면 됨" 2. perseInt()함수 사용하면 이렇게 됨. if(perseInt(u.value) !== 1335) 3. 얄팍하고 쉬운 방법으로는 1335를 문자타입으로 바꿔주면 됨. -->

코딩테스트 2023.06.26