728x90
이 문제는 문제에 대한 이해부터 필요하다!!!
나는 처음에 두 가로 세로를 곱해서 가장 큰수를 내보내 보려고 했으나 그게 아니라
가로 세로 중에 작은것만 있는 것 중에 가장 큰수
가로 세로 중에 큰것만 있는 것 중에 가장 큰수
이 두개를 곱해야 하는 문제였다.
그럼 여기서 문제는 어떻게 접근해야 하는가
1. 작은것만 담을 배열을 만든다
2. 큰것만 담을 배열을 만든다
3. 배열을 반복하던, 복사하던 새로운 배열을 생성해 담는다
(방법은 map을 쓰던지 for문을 쓰던지)
4. 새로 생성된 배열에서 가장 큰 값들을 가져와서 곱한다
의 방식으로 접근 해봐야 한다
내가 쓴 코드
function solution(sizes) {
let small = []; //작은 수를 담을 새 배열 생성
let big = []; //큰수를 담을 새 배열 생성
sizes.map(([a, b])=>{ //map함수를 통한 새로운 배열 생성(배열 안에 배열한개를 원소로 받아옴)
if(a>b){ //따지면 sizes[0][0]가 sizes[0][1]보다 크면
big.push(a); //큰수는 큰수를 담는 배열에 넣고
small.push(b) //작은수는 작은수를 담는 배열에 넣어라
}else{
big.push(b);
small.push(a);
}
})
return (Math.max(...big)* Math.max(...small)) //각 배열에서 최대값을 곱해라
//여기서 스프레드문법 ...을 쓴 이유는 배열에 있는 모든 값을 가지고 오기 위해서!
}
나는 구글링 하는 바람에 이렇게 풀었지만
다른 스터디 조원분은 for문을 통해서 푸셨다
728x90
'알고리즘 문제' 카테고리의 다른 글
알고리즘 문제 js 32- 두개 뽑아서 더하기 (0) | 2022.01.29 |
---|---|
알고리즘 문제 js 31- 같은 숫자는 싫어 (0) | 2022.01.29 |
알고리즘 문제 js 29- 3진법 뒤집기 (0) | 2022.01.26 |
[백준 알고리즘]9093번 단어뒤집기 (js) (0) | 2022.01.24 |
알고리즘 문제 js 28 - 하샤드 수 (0) | 2022.01.19 |