본문 바로가기

Algorithm/Programmers40

[프로그래머스 JS] 체육복 문제 더보기 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solut.. 2022. 12. 14.
[프로그래머스 JS] 문자열 내림차순으로 배치하기 (아스키코드 변환) 문제 더보기 문제 설명 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다. 제한 사항 str은 길이 1 이상인 문자열입니다. 입출력 예sreturn "Zbcdefg" "gfedcbZ" 문제에서 대문자는 소문자보다 작은 것으로 간주한다는 부분을 보고, 아스키 코드로 변환하면 되겠구나 싶었다. 1. 문자 -> 아스키코드 let a = 'a'; console.log(a.charCodeAt()); // 97 2. 아스키코드 -> 문자 let num = 97; console.log(String.fromCharCode(num)); // a 전체 코드는 아래와 같.. 2022. 12. 13.
[프로그래머스 JS] 겹치는 선분의 길이 문제 더보기 문제 설명 선분 3개가 평행하게 놓여 있습니다. 세 선분의 시작과 끝 좌표가 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines가 매개변수로 주어질 때, 두 개 이상의 선분이 겹치는 부분의 길이를 return 하도록 solution 함수를 완성해보세요. lines가 [[0, 2], [-3, -1], [-2, 1]]일 때 그림으로 나타내면 다음과 같습니다. 선분이 두 개 이상 겹친 곳은 [-2, -1], [0, 1]로 길이 2만큼 겹쳐있습니다. 제한사항 lines의 길이 = 3 lines의 원소의 길이 = 2 모든 선분은 길이가 1 이상입니다. lines의 원소는 [a, b] 형태이며, a, b는 각각 선분의 양 끝점 입니다. -.. 2022. 12. 13.
[프로그래머스 JS] 유한소수 판별하기 정말 많은 반례가 있었던 문제... 정수일 때는 무조건 유한소수!! 그리고 최대공약수 구하는 건 정말 외워둬야겠다 ㅎㅎ 다른 로직 짰다가 뒤엉키고 시간 복잡도 올라가고.... 그리고 짧은 로직으로 구현할 수 있다면 따로 함수를 거창하게 파는 것은 지양해야 겠다고 생각했다. 문제 더보기 유한소수 판별하기 문제 설명 소수점 아래 숫자가 계속되지 않고 유한개인 소수를 유한소수라고 합니다. 분수를 소수로 고칠 때 유한소수로 나타낼 수 있는 분수인지 판별하려고 합니다. 유한소수가 되기 위한 분수의 조건은 다음과 같습니다. 기약분수로 나타내었을 때, 분모의 소인수가 2와 5만 존재해야 합니다. 두 정수 a와 b가 매개변수로 주어질 때, a/b가 유한소수이면 1을, 무한소수라면 2를 return하도록 solution.. 2022. 12. 13.