반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/120845?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
🐍파이썬
def solution(box, n):
answer = 1
for i in box:
answer *= i // n
return answer
🐥자바스크립트
function solution(box, n) {
var answer = 1;
for (let i of box){
answer *= parseInt(i / n)
}
return answer;
}
코드 설명
1️⃣ 상자의 가로에 들어갈 수 있는 주사위의 모서리길이 갯수는 box[0] // n 이다.
2️⃣ 상자의 세로에 들어갈 수 있는 주사위의 모서리길이 갯수는 box[1] // n 이다.
3️⃣ 상자의 높이가 수용할 수 있는 주사위의 모서리길이 갯수는 box[2] // n 이다.
4️⃣ 상자 안에 들어갈 수 있는 주사위의 최대 개수는 box[0] // n + box[1] // n + box[2] // n (부피구하기 공식 활용)
다른 풀이 방법
🐥자바스크립트
function solution(box, n) {
let [width, length, height] = box;
return Math.floor(width / n) * Math.floor(length / n) * Math.floor(height / n);
}
function solution(box, n) {
return box.reduce((acc,v) => acc * Math.floor(v / n), 1);
}
- reduce: 배열의 각 요소에 대해 주어진 reducer 함수를 실행, 하나의 결과값을 반환
- 화살표 함수의 두번째 인수 1(initialValue)은 초기값을 지정한 것, 배열이 비어있는데 initialValue도 제공하지 않으면 TypeError 발생
function solution(box, n) {
return box.map(v=>~~(v/n)).reduce((a,v)=>a*v,1);
}
- ~~ 연산자: Math.floor()와 동등하게 쓰이는 연산자, 소수점 아래 버림 기능
- [~~(box[0]/n), ~~(box[1]/n), ~~(box[2]/n)] 배열 내 원소를 모두 곱하여 결과값을 리턴
반응형
'Problem Solving > 프로그래머스' 카테고리의 다른 글
| [프로그래머스 | 파이썬 / 자바스크립트] 종이 자르기(코딩테스트 입문/ level 0) (0) | 2023.02.20 |
|---|---|
| [프로그래머스 | 파이썬 / 자바스크립트] 캐릭터의 좌표(코딩테스트 입문/ level 0) (0) | 2023.02.20 |
| [프로그래머스 | 파이썬 / 자바스크립트] 가위 바위 보(코딩테스트 입문/ level 0) (2) | 2023.02.19 |
| [프로그래머스 | 파이썬 / 자바스크립트] 짝수 홀수 개수(코딩테스트 입문/ level 0) (0) | 2023.02.19 |
| [프로그래머스 | 파이썬] 캐시(2018 KAKAO BLIND RECRUITMENT/ level 2) (0) | 2023.01.01 |
| [프로그래머스 | 파이썬] H-Index(정렬/ level 2) (0) | 2022.12.30 |