본문 바로가기

반응형

자바스크립트

[프로그래머스] level1. 문자열 내 마음대로 정렬하기(javascript) 문제 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다. 제한 조건 strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. 의식의 흐름 tmp_arr와 tmp_arr1라는 배열을 만들어서 .. 더보기
[프로그래머스] level1. 나누어 떨어지는 숫자 배열 ( javascript) 문제 array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하세요. 의식의 흐름 filter로 divisior 로 나눈 목이 0 인거 걸러주면 끝 sort로 오름차순 정렬 빈 배열 체크하고 처리 => 어떻게 하지? => 검색해보니까 length로 체크하더라. 빈 배열은 자바스크립트에서 'true' 였다. 빈 배열 나타내는게 '',[] 등 많은데 뭔가 이상해서 length로 판단하는게 나을 것 같다. 초기 코드 function solution(arr, divisor) { const answer = arr.filter((el)=> .. 더보기
[프로그래머스] 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번 케이스처럼 잘못되는 경우가 생김. 단순하게 .. 더보기

반응형