본문 바로가기

실천하기/코딩테스트14

level 1) 자연수 뒤집어 배열로 만들기 자연수를 주면 뒤집어서 하나씩 요소로 넣어서 배열을 반환하기 12345 -> [5,4,3,2,1] function solution(n) { var answer = []; let str = String(n).split(""); for (let i = 0; i 0); return answer; } 이게 훨씬 간단해보여서 이걸로 결정 암.. 2022. 9. 15.
level 1) 정수 제곱근 판별 특정한 정수를 주었을때, 정수 i의 제곱근일 경우, i+1의 제곱을 반환하고, 아닐 경우 -1을 반환하기 121 = 11*11이므로 12의 제곱인 144를 반환 3은 정수제곱근으로 만들 수 없으므로 -1을 반환 function solution(n) { var answer = 0; for (let i = 1; i 2022. 9. 15.
level 1) 약수의 합 숫자 12을 줄 경우, 약수를 모두 더해서 28이란 값이 나오도록 메서드 작성 12 -> 1+2+3+4+6+12 = 28 앞에서 자릿수마다 합을 구하는 문제를 풀어서 쉽게 풀 수 있었다. 1부터 28까지 정수를 대입해서 나누도록 시키고, 나머지가 0인 숫자들의 합을 구하면 된다. function solution(n) { var answer = 0; for (let i = 1; i 2022. 9. 15.
level 1) 각 자릿수 더하기 주어진 함수 기본형 function solution(n) { var answer = 0; // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다. console.log('Hello Javascript') return answer; } 123 -> 1+2+3 = 6 이 값을 도출해내는 함수 만들기 너무 오랜만에 문제를 풀려니까 머리가 멍하다. 원래 이 자릿수를 하나하나 끊어주는 함수가 있던가? split은 문자열에만 적용되는거니까 123을 강제로 string화 시켜주고( .toString()이나 String()) 하나하나를 다시 숫자로 바꿔주고(Number(), parsInt())를 사용해서 더해주면 되겠지만 번거롭다. 다른게 없을까. let sum = 0; do { sum += n % 10; n = Ma.. 2022. 9. 15.
[220111] Lv.1 / 짝수와 홀수 문제 사이트 링크: https://programmers.co.kr/learn/courses/30/lessons/12937 코딩테스트 연습 - 짝수와 홀수 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 제한 조건 num은 int 범위의 정수입니다. 0은 짝수입니다. 입출력 예 num return 3 "Odd" 4 "Even" programmers.co.kr 내 풀이 function solution(num) { let answer = ""; num%2==0?answer="Even":answer="Odd" return answer; } true, false 값이 1, 0 인것을 이용한 풀이 function solution(num) {.. 2022. 1. 11.
[220110] Lv.1 / 최소공배수, 최대공약수 구하기 문제 사이트 링크 : https://programmers.co.kr/learn/courses/30/lessons/12940 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr 문제인식 : 이건 뭐 어디 에? 종이랑 펜을 주면 풀 수 있고, 간단한건 암산으로도 풀 줄 아는데 막상 컴퓨터한테 설명하려니 머리가 터질거같았다. 최대공약수 개념을 학교에서 배운대로 작성하자니, 인간은 나누다가 어느정도 되면 멈추는데 컴퓨터는 멈추지 않잖아??? 이거 뭐 어케해야...???? 그래서 인간의 방.. 2022. 1. 11.
[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.