본문 바로가기

반응형

프로그래머스

[프로그래머스] 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 함수를 작성.. 더보기
[프로그래머스] level1. 모의고사 (javascript) 문제 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ... 1번 문제부터 마지막 문제까지의 정답이 순서대로 들은 배열 answers가 주어졌을 때, 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return 하도록 solution 함수를 작성해주.. 더보기
[프로그래머스] level1. 완주하지 못한 선수 (javascript) 문제 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 의식의 흐름 그냥 for문 돌려서 일일이 비교 해서 없는거 찾기 indexOf 함수를 사용해서 for문을 돌렸다. => 문제점. 조건문 쓸게 너무 많아서 정확성과 효율성에서 떨어졌다. 배열을 통으로 비교할 방법이 없을까? ==> 이게 sort였음. => sort로 두 배열을 정렬시켜서 동일하게 만든 다음, for문 한번으로 틀린 부분을 찾는 것이였다. 다른사람의 정답 .. 더보기
[프로그래머스] level1. 두 개 뽑아서 더하기 (javascript) 문제 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는두 개의 수를 뽑아더해서만들 수 있는 모든 수를 배열에오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 생각의 흐름 우선 배열을 정렬을 해야 문제가 풀릴 것 같아, 정렬을 하는 법을 찾아보았다. array.sort() 배열 내 값들을 하나씩 더하면 될 것 같아서 반복문을 사용했다. 참조 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Loops_and_iteration 초기코드(오답) function solution(numbers) { let answer = []; let input_arr = numbers.sort() for (let.. 더보기

반응형