< 오늘의 문제 >
- (최댓값 만들기 (2))[https://school.programmers.co.kr/learn/courses/30/lessons/120862]
- (문자열 정렬하기 (1))[https://school.programmers.co.kr/learn/courses/30/lessons/120850]
- (주사위의 개수)[https://school.programmers.co.kr/learn/courses/30/lessons/120845]
최댓값 만들기 (2)
function solution(numbers) {
const answer = [];
for(let i = 0 ; i < numbers.length; i++){
for(let j = 0 ; j < numbers.length; j++){
if(i !== j) {
answer.push(numbers[i] * numbers[j])
}
}
}
return Math.max(...answer)
}
- 나의 풀이
: 일단 - * - 의 조건도 최댓값을 출력할 수 있는 문제였기때문에 모든 배열의 곱을 구해야했다.
하지만 return에서 죽어도 값이 안나오고 Null값이 출력되서 알고보니, Math.max 함수는 배열을 인수도 받지않는다..
그래서 스프레드연산자를 사용하고 answer안의 요소값만 따로 출력되게끔 풀이하였다.
문자열 정렬하기 (1)
function solution(my_string) {
const answer = [];
const numbersMystring = my_string.split('')
for(let i = 0 ; i < numbersMystring.length ; i++){
if(numbersMystring[i] % 1 === 0) {
answer.push(numbersMystring[i])
}
}
return answer.sort((a, b) => a - b)
}
- 나의 실패 풀이!!!!!
: 그냥 아무생각없이 쉽네 하면서 쭉쭉 풀어나갔는데, 죽어도 배열안의 요소값이 "" 에서 벗어나질않았다.
join도 여기저기 사용해보고 별 쇼를 다했지만 포기하게됬고, 결국 정규식을 사용해서 풀이해야된다는걸 검색을 통해 알게되었다 ㅠㅠ..
function solution(my_string) {
const numbers = my_string.match(/\d/g);
const sortNumbers = numbers.map(Number).sort();
return sortNumbers;
}
- 나의 검색 풀이
\d: 이 부분은 정규 표현식에서 숫자(digit)를 나타낸다
g: 이 부분은 "글로벌(global)"을 나타내며, 문자열 전체에서 모든 해당 패턴을 찾는다.
배열안에서 숫자인 값만 match하여 뽑아내고, map으로 요소를 돌리고 Number를 통해 숫자형으로 바꿔준 뒤 오름차순했다.
주사위의 개수
function solution(box, n) {
var answer = 0;
answer = (box[0] * box[1] * box[2]) / (n * * 3)
return Math.floor(answer);
}
- 나의 실패 풀이
: n이 모서리의 길이라고해서 상자의 넓이 구하듯이 3제곱을하고 box넓이값에 나누면 당연히 답이 나온다고 생각했는데,
수학의 무지가 여기서 드러나버렸다 ; 휴
function solution(box, n) {
const width = Math.floor(box[0] / n);
const length = Math.floor(box[1] / n);
const height = Math.floor(box[2] / n);
return x * y * z;
}
- 나의 풀이
: 상자 안에 주사위를 넣을 때, 주사위의 한 모서리가 상자의 한 변과 일치하도록 배치해야 했다.
따라서 주사위 한 변의 길이가 n인 경우, 상자의 한 변 길이가 n으로 나누어 떨어져야 한다.
function solution(box, n) {
let [width, length, height] = box;
return Math.floor(width / n) * Math.floor(length / n) * Math.floor(height / n);
}
- 다른 사람 풀이
: 뭔가 내 풀이와 같지만 개인적으로 더 보기좋아서 가져왔다.