본문 바로가기

코테레벨18

[220108] Lv.1 / 콜라츠 추측 문제 사이트 링크 : https://programmers.co.kr/learn/courses/30/lessons/12943 코딩테스트 연습 - 콜라츠 추측 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2 programmers.co.kr 내 풀이 let sum=0; do{ if(num==1){break;} //만약 num이 1이면 do문을 빠져나간다 else{ num=((num%2)==0)?Math.floor(num/2):((num*3)+1); //조건이 짝수일때 --> 참이면 2로 나눔, 거짓이면 3을 곱하고 1을 더함 sum++; //do문.. 2022. 1. 9.
[220108] Lv.1 평균값 구하기 문제 사이트 링크 : https://programmers.co.kr/learn/courses/30/lessons/12944 코딩테스트 연습 - 평균 구하기 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입출력 예 arr programmers.co.kr 내 풀이 let arr=[1,2,3,4] let sum=0; arr.forEach(v => {sum+=v}); let answer = sum/arr.length reduce를 사용한 더 짧고 빠른 풀이 reduce라는게 있는 것을 배웠다. 짧게 푸는 법은 무궁무진하구나. let a.. 2022. 1. 8.
[220108] Lv.1 / 하샤드의 수 문제 사이트 : https://programmers.co.kr/learn/courses/30/lessons/12947 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr 내 풀이 let num=10; function solution(num){ let arr = new String(num); let len=arr.length; let sum=0; let answer=true; for(let i=0; i0); return !(num%sum) //나머지가 0일경우 true를 반환, 아닐 경우.. 2022. 1. 8.
[220107] Lv.1 / 핸드폰 번호 가리기 해당 문제 주소 : https://programmers.co.kr/learn/courses/30/lessons/12948 splice를 사용해보려고했는데, 문자열이라서 사용이 안된다고한다. 배열만 가능하대. 아 그럼 배열로 만들어. for문만 사용해서 풀기 let phone="01033334444" let phoneArr=[] for(let i=0; i 2022. 1. 7.
[220105] Lv.2 피보나치 수열 / 메모이제이션으로 풀기 수업중에 피보나치 수열의 예제로 나왔던 문제. 꾸역꾸역 일단 풀음. 손에 익히는게 먼저야. 교수님 답변 let num=[]; //계산한 결과값 저장 //첫번재 원소값 1, 두번째 원소값 2 function fibo2(n){ //조건1 if(num[n] > 0) { return num[n]; //조건2 } else if(n===1 || n===2) { return num[n]=1; //조건1이랑 조건2는 중요도가 같아서 뒤바뀌어서 시간복잡도 상관 ㄴㄴ } else { return num[n] = fibo2(n-1) + fibo2(n-2); } } 이건 내가 문제를 한번 풀고 기억을 더듬어서 풀어본 방법 function solution(n) { let answer = []; //확률적으로 값이 0~2인것보다.. 2022. 1. 5.
[220104] 코테 Lv.1 / 행렬의 덧셈 문제인식 (더보기) 더보기 더보기 더보기 [[1,2],[2,3]] 이건뭐지 배열이 두겹이다. 뭐지 저건 뭐라고 부르지. 더블배열은 아닐테고. 구글링하니까 2차배열이라고 부른단다. 배열 선언 방법 : let arr = new Array(rows); 새로운 배열 선언 방법을 알았다. 변수명에 새로 생성하니까 new, 배열이니까 Array, 만들 개수를 (rows)에 넣는가 봄. 객체 안에 배열이나 객체를 넣을 수 있는데, 배열 안에도 배열을 넣을 수 있나보다! let arr = [1,2,3] arr[0]=1 2차원 배열 선언 방법 : let arr = new Array(rows, columns); 우선 이해를 해보자. [ [1,2], [2,3] ] 이란 배열 안에는 [1,2]랑 [2,3]이 있다. 저 배열 .. 2022. 1. 4.
[220104] 코테 Lv.1 / x만큼 간격이 있는 n개의 숫자 해결 : for문이랑 배열 사용 function solution(x, n) { let answer = []; //2,5 -> 2의 배수를 5개 만들어야함 for(let i=0; i(i+1)*v) /* - 요소를 n개 만드는 새 배열을 만들건데, - 그 안을 x로 채울거야. - 그 x에 하나씩 접근해서 함수처리 한 값으로 새 배열을 만들거야 - map(함수(처리할 현재 요소, 처리할 현재 요소의 인덱스, map()을 호출한 원본배열)) - 인덱스 0부터 하나씩 접근할때 바뀌는 인덱스가 i */ } solution(2,5); // {빈 요소, 빈 요소, 빈 요소, 빈 요소, 빈 요소} // {2, 2, 2, 2, 2} // {(0+1)*2, (1+1)*2, (2+1)*2, (3+1)*2, (4+1)*2} /.. 2022. 1. 4.
[220104] 코테 Lv.1 / 직사각형 별찍기, 크롬 콘솔에서 중복된 값 띄우기 해보려고했는데.. 아는게 별로 없어셔 예시의 구문은 사용하지 못했다. 대신 내가 아는 것 내에서 해보고, 모르는건 일단 알아두기는 하겠음. 해결 전 문제 인식하기 별을 출력하고 함수를 어떻게 짜고 말하기 전에 제일 큰 문제가 하나 있다. 한 줄에 나란히 쓰기는 어떻게 하지. 너무 간단한 문제라 헛웃음이 나는데 지금 내 수준이 여기다. 아는건 console.log()랑 if문이랑 for문이랑 연산자 몇개가 단데 뭐 어떡할거야. 그러니까 도와줘요 구글링. 구글링을 한 결과 --> process.stdout.write(); 뭐가 이렇게 길어. 간단한거 없나. 심지어 실행도 안되는데? 뭐지? 어 잠만 여기서 막히면 아무것도 할 수 없는디. 출력을 못하는데 코드 짜면 뭐하냐고 확인을 못하는데. 혹시 console.. 2022. 1. 4.