본문 바로가기

반응형

코딩테스트

[프로그래머스] level1. 소수찾기 ( javascript) 문제 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 의식의 흐름 소수 찾는 법을 모르겠다. 다른 이들의 정답 방법1. function solution(n) { var arr = []; var cnt = 0; for (var i = 0; i < n + 1; i++) { arr.push(true); } for (var i = 2; i * i O(logn)개념 여기서는 제곱근 대신 제곱을 사용하였다. 방법2. function numberOfPrime(n) { var result = 0; // 함수를 완성하세요. var cnt=0; for(var a=2;a 더보기
[프로그래머스] level1. 서울에서 김서방 찾기 (javascript) 문제 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 의식의 흐름 위치(인덱스)를 찾는거기에 그냥 indexOf 함수를 쓰면 끝 function solution(seoul) { const local = seoul.indexOf("Kim") return "김서방은 " + local+"에 있다"; } 배열에서 indexOf 함수를 통해 key값을 통해 인덱스를 찾을 수 있다는 것만 알면 된다! 더보기
[프로그래머스] level1. 문자열 내림차순으로 배치하기(javascript) 문제 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 의식의 흐름 sort를 통해 정렬해주면 되겠다. 문자열 정렬은 단순 sort((a,b)=>a-b) 같은 형태로 하면 안된다는걸 알게됨. 단순 뒤집어 주기만 하면 reverse 쓰는게 더 좋아보인다. function solution(s) { return s.split('').sort().reverse().join(''); } 다른 이들의 정답 function solution(s) { return s.split("").sort((a,b) => a 배열 : split() 배열 => 문자열 : .joi.. 더보기
[프로그래머스] level1. 폰켓몬 (javascript) 문제 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. 홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 예를 들어 연구실에 총 4마리의 폰켓몬이 있고, 각 폰켓몬의 종류 번호가 [3번, 1번, 2번, 3번]이라면 이는 3번 폰켓몬 두 마리, 1번 폰켓몬 한 마리, 2번 폰켓몬 한 마리가 있음을 나타냅니다. 이때, 4마리의 폰켓몬 중 2마리를 고르는 방법은 다음과 같이 6가지가 있습니다. 첫 번째(3번), 두 번째(1번) 폰켓몬을 선택 첫 번째(3번), 세 번째(2번) 폰켓몬을 선택 첫 번째.. 더보기
[프로그래머스] level1. 두 정수 사이의 합 (javascript) 문제 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 의식의 흐름 그냥 단순 for 문 돌리는것 같아서 일단 짜봄 초기코드(정답) function solution(a, b) { var answer = 0; for (let i = 0 ; i b){ answer = answer + (b+i) } else if (b > a){ answer = answer + (a+i) } else { answer = a } } return answer; } 다른 사람 정답 방법1. function adder(a, b){ var result = 0 //함수를 완성하.. 더보기
[프로그래머스] level1. 같은 숫자는 싫어 (javascript) 문제 배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면, arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다. arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다. 배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요. 의식의 흐름 set을 써서 겹치는 부분을 없앨라고 했는데, 그러면 1번 케이스처럼 잘못되는 경우가 생김. 단순하게 .. 더보기
[프로그래머스] level1. 3진법 뒤집기 (javascript) 문제 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 의식의 흐름 진수 표현을 어떻게 하는가? = 제곱근으로 한다. 3진수 표현을 하려면 어떻게 할까? = 3으로 나눈 몫과 나머지를 이용한다. for 문과 배열을 통해서 3진수의 자리에 맞는 숫자를 넣어준다. 초기 코드 function solution(n) { var answer = 0; let x = 0; let y = n; while(y >= 3){ x = x+ 1; y = parseInt(y / 3); } let tmp_arr = [] let reserve_arr=[] for(let i =0; i < x+1 ; i ++){ tmp_.. 더보기
[프로그래머스] level1. 체육복 ( javascript) 문제 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를 작성.. 더보기

반응형