북마크    
근의 공식    
원 계산기    
타원 넓이    
구의 부피    
캡슐 부피    
ROI 계산기    
IRR 계산기    
GDP 계산기    
CTR 계산기    
LTV 계산기    
CAC 계산기    
BMI 계산기    
1RM 계산기    
진법 변환    
급여 환산    
   추가
확률과 무작위 계산기
독립사건 확률
독립사건 확률
두 사건 확률 역산
두 사건 확률 역산
반복 시행의 확률
반복 시행의 확률
조건부확률·베이즈
조건부확률·베이즈
기댓값 계산기
기댓값 계산기
이항분포 계산기
이항분포 계산기
순열·조합
순열·조합
원순열·염주순열
원순열·염주순열
중복순열·중복조합
중복순열·중복조합
난수 생성기
난수 생성기
평균과 통계 계산기
평균 계산기
평균 계산기
대푯값 계산기
대푯값 계산기
표준편차 계산기
표준편차 계산기
사분위수 계산기
사분위수 계산기
도수분포표 계산기
도수분포표 계산기
상관계수 계산기
상관계수 계산기
정규분포 확률
정규분포 확률
z점수 계산기
z점수 계산기
신뢰구간 계산기
신뢰구간 계산기
표본 크기 계산기
표본 크기 계산기
표지 재포획법
표지 재포획법
p값 계산기
p값 계산기
비율과 백분율 계산기
퍼센트 계산기
퍼센트 계산기
증감률 계산기
증감률 계산기
퍼센트 차이
퍼센트 차이
오차율 계산기
오차율 계산기
비례식 계산기
비례식 계산기
할인율 계산기
할인율 계산기
부가세 계산기
부가세 계산기
마진율 계산기
마진율 계산기
속력 계산기
속력 계산기
속력 계산기
밀도와 농도 계산기
밀도 계산기
밀도 계산기
몰 농도 계산기
몰 농도 계산기
분자량·몰 질량
분자량·몰 질량
물리와 전기 계산기
옴의 법칙 계산
옴의 법칙 계산
와트·암페어 변환
와트·암페어 변환
저항 색 코드
저항 색 코드
전압강하 계산
전압강하 계산
단위 변환 계산기
평 ↔ m² 환산
평 ↔ m² 환산
무게 단위 변환
무게 단위 변환
신발 사이즈 변환
신발 사이즈 변환
정수와 양수·음수 계산기
나눗셈 세로셈
나눗셈 세로셈
최소공배수
최소공배수
최대공약수
최대공약수
양수 음수 계산기
양수 음수 계산기
소인수분해
소인수분해
일차부정방정식
일차부정방정식
나머지 계산기
나머지 계산기
약수 계산기
약수 계산기
로마 숫자 변환
로마 숫자 변환
분수·소수와 어림하기 계산기
분수 계산기
분수 계산기
대분수 계산기
대분수 계산기
약분 계산기
약분 계산기
분수 → 소수 변환
분수 → 소수 변환
소수 → 분수 변환
소수 → 분수 변환
반올림 계산기
반올림 계산기
방정식과 부등식 계산기
일차방정식 계산기
일차방정식 계산기
연립방정식 계산기
연립방정식 계산기
근의 공식
근의 공식
절댓값 방정식
절댓값 방정식
이차부등식 계산기
이차부등식 계산기
다항식과 전개 계산기
이항정리 계산기
이항정리 계산기
제곱근과 거듭제곱근 계산기
근호 계산기
근호 계산기
거듭제곱근 계산
거듭제곱근 계산
지수와 로그 계산기
거듭제곱 계산기
거듭제곱 계산기
로그 계산기
로그 계산기
상용로그와 자릿수
상용로그와 자릿수
과학적 표기법
과학적 표기법
과학적 표기법 계산
과학적 표기법 계산
반감기 계산기
반감기 계산기
복소수 계산기
복소수 계산기
복소수 계산기
복소수 극형식
복소수 극형식
드무아브르 정리
드무아브르 정리
함수와 그래프 계산기
기울기 계산기
기울기 계산기
일차함수 계산기
일차함수 계산기
정비례·반비례
정비례·반비례
이차함수 계산기
이차함수 계산기
두 점 사이의 거리
두 점 사이의 거리
3차원 거리 계산
3차원 거리 계산
내분점·외분점
내분점·외분점
점과 직선의 거리
점과 직선의 거리
위도·경도 거리
위도·경도 거리
완전제곱식 계산기
완전제곱식 계산기
원의 방정식 계산기
원의 방정식 계산기
이차곡선 계산기
이차곡선 계산기
극좌표 변환 계산기
극좌표 변환 계산기
수열 계산기
등차수열 계산기
등차수열 계산기
등비수열 계산기
등비수열 계산기
피보나치 수열
피보나치 수열
점화식 계산기
점화식 계산기
벡터 계산기
벡터 계산기
벡터 계산기
외적 계산기
외적 계산기
행렬 계산기
행렬 계산기
행렬 계산기
행렬식 계산기
행렬식 계산기
역행렬 계산기
역행렬 계산기
평면도형 계산기
삼각비 계산기
삼각비 계산기
도 ⇔ 라디안 변환
도 ⇔ 라디안 변환
삼각함수의 합성
삼각함수의 합성
삼각형 계산기
삼각형 계산기
삼각형 넓이 계산기
삼각형 넓이 계산기
직각삼각형 계산
직각삼각형 계산
피타고라스 정리
피타고라스 정리
다각형의 내각·외각
다각형의 내각·외각
닮음비·넓이·부피
닮음비·넓이·부피
평행선과 각
평행선과 각
직사각형의 넓이
직사각형의 넓이
평행사변형 넓이
평행사변형 넓이
사다리꼴 넓이
사다리꼴 넓이
원 계산기
원 계산기
부채꼴 넓이
부채꼴 넓이
원주각 계산기
원주각 계산기
타원 넓이
타원 넓이
입체도형 계산기
정육면체 부피
정육면체 부피
정육면체 겉넓이
정육면체 겉넓이
직육면체 부피
직육면체 부피
직육면체 겉넓이
직육면체 겉넓이
원기둥 부피
원기둥 부피
원기둥 겉넓이
원기둥 겉넓이
구의 부피
구의 부피
구의 겉넓이
구의 겉넓이
구결의 부피
구결의 부피
구관의 넓이
구관의 넓이
타원체의 부피
타원체의 부피
타원체의 겉넓이
타원체의 겉넓이
사각뿔의 부피
사각뿔의 부피
사각뿔의 겉넓이
사각뿔의 겉넓이
원뿔의 부피
원뿔의 부피
원뿔의 겉넓이
원뿔의 겉넓이
원뿔대의 부피
원뿔대의 부피
원뿔대의 겉넓이
원뿔대의 겉넓이
파이프 부피
파이프 부피
캡슐 부피
캡슐 부피
캡슐 겉넓이
캡슐 겉넓이
날짜와 시간 계산기
만 나이 계산기
만 나이 계산기
일수 계산기
일수 계산기
며칠 후·전 날짜
며칠 후·전 날짜
몇 시간 후·전 계산
몇 시간 후·전 계산
요일 계산기
요일 계산기
시간 더하기 빼기
시간 더하기 빼기
시차 계산기
시차 계산기
근무시간 계산기
근무시간 계산기
시간 차이 계산기
시간 차이 계산기
근무시간 계산기
근무시간 계산기
금융과 경제 계산기
복리 계산기
복리 계산기
단리 계산기
단리 계산기
이자 계산기
이자 계산기
재무용 계산기
재무용 계산기
현재가치 계산기
현재가치 계산기
미래가치 계산기
미래가치 계산기
ROI 계산기
ROI 계산기
IRR 계산기
IRR 계산기
회수기간 계산기
회수기간 계산기
평균 수익률 계산기
평균 수익률 계산기
GDP 계산기
GDP 계산기
웹 마케팅·광고 지표 계산기
CTR 계산기
CTR 계산기
전환율 계산기
전환율 계산기
CPC·CPM·CPA 계산
CPC·CPM·CPA 계산
ROAS 계산기
ROAS 계산기
손익분기 CPA
손익분기 CPA
LTV 계산기
LTV 계산기
CAC 계산기
CAC 계산기
이탈률 계산기
이탈률 계산기
A/B 테스트 유의성
A/B 테스트 유의성
A/B 표본 크기
A/B 표본 크기
SEO 유입 예측
SEO 유입 예측
손익분기점 계산기
손익분기점 계산기
마진율·마크업률
마진율·마크업률
CAGR 계산기
CAGR 계산기
건강과 피트니스 계산기
BMI 계산기
BMI 계산기
수면 주기 계산기
수면 주기 계산기
칼로리 계산기
칼로리 계산기
기초대사량 계산기
기초대사량 계산기
TDEE 계산기
TDEE 계산기
표준체중 계산기
표준체중 계산기
체지방률 계산기
체지방률 계산기
제지방량 계산기
제지방량 계산기
칼로리 소모 계산기
칼로리 소모 계산기
단백질 계산기
단백질 계산기
탄단지 계산기
탄단지 계산기
탄수화물 계산기
탄수화물 계산기
지방 섭취량 계산기
지방 섭취량 계산기
예상키 계산기
예상키 계산기
스포츠 계산기
골프 핸디캡
골프 핸디캡
페이스 계산기
페이스 계산기
1RM 계산기
1RM 계산기
목표심박수 계산기
목표심박수 계산기
날씨 계산기
열지수 계산기
열지수 계산기
겨울 체감온도
겨울 체감온도
이슬점 계산기
이슬점 계산기
컴퓨터 계산기
진법 변환
진법 변환
서브넷 계산기
서브넷 계산기
다운로드 시간 계산
다운로드 시간 계산
가계와 공과금 계산기
가전 전기요금
가전 전기요금
전기요금 계산기
전기요금 계산기
연간 kWh→전기요금
연간 kWh→전기요금
에어컨 평형 계산
에어컨 평형 계산
에어컨 전기요금
에어컨 전기요금
난방 전기요금 비교
난방 전기요금 비교
가스 vs 전기 요금
가스 vs 전기 요금
LED 교체 절약액
LED 교체 절약액
급여 환산
급여 환산
가계 수지 계산
가계 수지 계산
자동차 계산기
주유비 계산기
주유비 계산기
전기차 충전 요금
전기차 충전 요금
전기차 vs 휘발유차
전기차 vs 휘발유차
연비 계산기
연비 계산기
타이어 사이즈 계산
타이어 사이즈 계산
태양광 발전과 에너지 저장 계산기
태양광 발전량
태양광 발전량
태양광 패널 장수
태양광 패널 장수
태양광 회수기간
태양광 회수기간
ESS 용량·사용 시간
ESS 용량·사용 시간
집과 DIY 계산기
타일 수량 계산
타일 수량 계산
계단 치수 계산
계단 치수 계산
콘크리트 물량
콘크리트 물량
벽·천장·바닥 면적
벽·천장·바닥 면적
벽지 계산기
벽지 계산기
페인트 계산기
페인트 계산기
마루 계산기
마루 계산기
외벽 면적 계산
외벽 면적 계산
자갈 계산기
자갈 계산기
몰탈 배합 계산
몰탈 배합 계산
경사도 계산
경사도 계산
목재 재단 계산
목재 재단 계산
건폐율·용적률
건폐율·용적률
장판 필요량
장판 필요량
단열재 필요량
단열재 필요량
커튼 사이즈
커튼 사이즈
TV 크기·시청 거리
TV 크기·시청 거리
흙·배양토 필요량
흙·배양토 필요량
잔디 평수·장수
잔디 평수·장수
블록 담장 수량
블록 담장 수량
벽돌 필요 장수
벽돌 필요 장수
데크 자재 계산
데크 자재 계산
경사로 길이
경사로 길이
피스 가이드 홀
피스 가이드 홀
필요 환기량
필요 환기량
페인트 희석
페인트 희석
걸레받이 계산기
걸레받이 계산기
블라인드 사이즈
블라인드 사이즈
액자 거는 높이
액자 거는 높이
배수 구배·높이차
배수 구배·높이차
피스 수량 계산
피스 수량 계산
목재 재 계산
목재 재 계산
펜스 자재 계산
펜스 자재 계산
목재 수축량 계산
목재 수축량 계산
실리콘 필요량
실리콘 필요량
방 열손실 계산기
방 열손실 계산기
가구 반입 계산기
가구 반입 계산기
이사 박스 개수
이사 박스 개수
수납 용량 계산기
수납 용량 계산기
합판 재단 계산기
합판 재단 계산기
선반 처짐 계산
선반 처짐 계산

목재 재단 계산기(정척 한 개에서 몇 개 나오는지·재단 배치)

정척 길이와 톱날 두께, 필요한 부재의 길이와 개수를 입력하세요(부재는 최대 8종류. 길이가 빈 줄은 무시합니다). 정척의 단가는 비워 두어도 됩니다.

기호 이름(선택) 길이(mm) 개수
A
B
C
D
E
F
G
H
길이는 모두 mm(밀리미터)로 입력합니다. 톱날 두께를 비워 두면 3 mm, 개수를 비워 두면 1개로 계산합니다. 부재 이름을 비워 두면 ‘부재 A’~‘부재 H’로 표시됩니다.
계산 결과·그림
왼쪽 입력란에 정척 길이와 필요한 부재의 길이·개수를 넣고 ‘계산’을 누르면 여기에 결과와 재단 배치도가 표시됩니다.

이 페이지에서 할 수 있는 것

  • 정척(1820 mm·2400 mm·3600 mm 등)의 길이와 필요한 부재의 길이·개수(최대 8종류)를 넣기만 하면 사야 할 정척의 개수를 바로 알 수 있습니다
  • 톱날 두께(기본 3 mm)를 포함해 계산하므로 ‘1820 mm를 4등분한 455 mm × 4개는 사실 1개에서 3개밖에 나오지 않는다’ 같은 함정을 놓치지 않습니다
  • 긴 부재부터 차례로 채우는 배치(First Fit Decreasing)를 기본으로, 부재가 모두 60개 이하면 ‘가장 적은 개수가 되는 조합’까지 탐색해 ‘정척 1번째: 다리 × 2, 자투리 214 mm’ 같은 재단 배치표와 정척마다의 가로 막대 그림을 보여 줍니다
  • 부재마다 따로 정척을 쓰는 단순 계산의 개수도 함께 보여 주고, 혼합 재단으로 몇 개를 아낄 수 있는지 알려 줍니다. 이론상 최소 개수(하한)와 비교해 배치가 최적(더 줄일 수 없음)인지 근사인지도 표시합니다
  • 정척의 단가(선택)를 넣으면 대략적인 비용과 아낄 수 있는 금액도 나옵니다. 공식의 쉬운 해설과 Excel·Google 스프레드시트·Python용 복사해서 쓰는 수식도 이 페이지에 정리되어 있습니다
배치는 ‘긴 부재부터 차례로, 처음으로 들어가는 정척에 채운다’는 절차(First Fit Decreasing)를 기본으로 하고, 그 개수가 ‘이론상 최소 개수’에 미치지 못할 때는 부재가 모두 60개 이하면 가능한 조합을 탐색해 가장 적은 개수의 배치로 바꿉니다(결과의 ‘혼합 재단 판정’에 최적인지 근사인지 표시합니다). 부재가 모두 60개를 넘으면 절차대로 구한 기준값이 되며, 항상 가장 적은 개수라고는 할 수 없습니다. 나뭇결·옹이·휨을 피해서 재단하거나 정척의 양 끝을 잘라 내고 쓸 때는 그만큼 여유를 두세요. 타일이나 마루처럼 ‘면적’으로 장수를 구할 때는 ‘타일 개수 계산기’ ‘마루·바닥재 필요 수량’ 페이지를 이용하세요.

이 계산은 어디에 쓰일까요?

DIY 테이블·선반·벤치용 목재 구매

예를 들어 다리 800 mm × 4개, 띠장 500 mm × 2개, 보강 400 mm × 2개의 작은 테이블을 1820 mm 각재로 만들 때, 부재마다 따로 사면 정척 4개이지만 긴 부재부터 차례로 채우는 혼합 재단이라면 3개면 됩니다(1번째: 다리 × 2, 2번째: 다리 × 2, 3번째: 띠장 × 2 + 보강 × 2, 자투리 8 mm).
사러 가기 전에 개수를 계산해 두면 모자라서 다시 사러 가거나, 반대로 남아서 둘 곳이 없어지는 실패를 줄일 수 있습니다. 목재상이나 온라인 목재 쇼핑몰의 재단 서비스를 이용할 때도 재단 배치표가 있으면 재단 주문을 한 번에 정확하게 할 수 있습니다.

데크·펜스·가림막의 장선과 가로대

데크의 장선이나 펜스의 가로대처럼 ‘같은 길이의 부재를 많이’ 쓰는 공사에서는 톱날 두께가 쌓여 개수에 영향을 줍니다. 예를 들어 1820 mm 정척에서 455 mm 가로대를 재단할 때, 톱날 두께가 없으면 딱 4개이지만 톱날 두께가 3 mm이면 \(4 \times 455 + 3 \times 3 = 1829\) mm가 되어 4개째가 9 mm 모자라고, 1개에서 3개밖에 나오지 않습니다. 40개가 필요하면 정척은 10개가 아니라 \(\lceil 40 \div 3 \rceil = 14\)개입니다.
길이를 455 mm에서 450 mm로 바꾸기만 해도 4개가 나와서 10개면 되므로, 설계 단계에서 ‘정척에서 몇 개 나오는 길이인지’ 확인해 두면 자재비를 크게 아낄 수 있습니다.

배관·전선관·알루미늄 프로파일·커튼 레일 재단

PVC 파이프(4 m 정척가 흔함)나 전선관, 알루미늄 프로파일, 커튼 레일처럼 ‘정해진 길이로 팔리고 잘라서 쓰는 것’은 모두 목재와 같은 공식으로 계산할 수 있습니다. 예를 들어 4000 mm PVC 파이프에서 1200 mm × 5개, 950 mm × 3개, 300 mm × 1개를 잘라 낸다면 혼합 재단으로 3개(따로 사면 4개)입니다.
다만 톱날 두께는 파이프 커터로 자르면 0에 가깝고, 쇠톱이면 1~2 mm 정도로 도구에 따라 달라지므로 톱날 두께 칸을 도구에 맞게 바꾸세요.

제재소·가구 공장·철공소의 자재 계획(수율)

공장에서는 자재비가 원가의 큰 비율을 차지하므로 ‘자재 중 얼마를 제품으로 만들 수 있었는가’를 수율로 관리합니다. 이 페이지의 ‘수율’은 부재의 합계 길이를 사는 정척의 합계 길이로 나눈 값으로, 자투리와 톱날 두께가 적을수록 100%에 가까워집니다.
실제 공장에서는 수백 종류의 부재를 수천 개의 자재에 배치하므로, 이 페이지와 같은 ‘빈 패킹 문제’를 푸는 전용 소프트웨어를 씁니다. 긴 순서로 채우는 First Fit Decreasing은 그런 소프트웨어에서도 첫 기준을 만드는 절차로 널리 쓰이는 방법입니다.

걸레받이·천장 몰딩 등 인테리어용 정척 자재

걸레받이(벽과 바닥의 경계에 대는 판)나 천장 몰딩(벽과 천장의 경계)은 2400 mm가 기본이고 4000 mm·5000 mm 같은 정척으로도 팔리며, 방의 각 벽 길이에 맞춰 잘라서 씁니다. 예를 들어 벽 길이가 3600 mm·2700 mm·3600 mm·2700 mm(문 등 개구부 제외)인 방에 4000 mm 정척 걸레받이를 두른다면, 3600과 2700은 같은 1개에 들어가지 않으므로 혼합 재단으로도 정척 4개입니다.
이처럼 ‘벽 한 면의 길이’가 정척의 절반을 넘으면 개수를 줄일 수 없으므로, 이음매를 허용할지, 정척 길이를 바꿀지를 먼저 검토하는 자료가 됩니다. 2400 mm 정척이라면 2700 mm·3600 mm 벽은 한 개로 부족하므로 이어 붙이는 위치까지 정해 두세요.

공식과 그림

정척 1개에서 나오는 개수
그림
수학 표기 (일반적인 수식)
\(m\) \(=\) \(\lfloor\) \((\) \(L\) \(+\) \(k\) \()\) \(\div\) \((\) \(l\) \(+\) \(k\) \()\) \(\rfloor\)
말로 쓴 표기 (기호를 말로 바꾼 식)
④ 정척 1개에서 나오는 개수(\(m\)) \(=\) \(\lfloor\) \((\) ① 정척 길이(\(L\)) \(+\) ② 톱날 두께(\(k\)) \()\) \(\div\) \((\) ③ 부재 길이(\(l\)) \(+\) 톱날 두께(\(k\)) \()\) \(\rfloor\)
공식을 말로 읽으면
① 정척 길이(\(L\)) 에
② 톱날 두께(\(k\)) 를 한 번 더하고
③ 부재 길이(\(l\)) 에도 톱날 두께 \(k\)를 더한 값으로 나눈 뒤 소수점 아래를 버리면(기호 \(\lfloor\ \rfloor\)는 ‘버림’이라는 뜻)
④ 정척 1개에서 나오는 개수(\(m\)) 가 됩니다
간단한 예
1820 mm(약 6자) 정척 각재에서 800 mm 다리를 재단할 때, 톱날 두께 3 mm로 1개에서 나오는 개수는
나오는 개수(\(m\)) \(=\) \(\lfloor\) \((\) 정척(1820 mm) \(+\) 톱날 두께(3 mm) \()\) \(\div\) \((\) 부재(800 mm) \(+\) 톱날 두께(3 mm) \()\) \(\rfloor\)
\((1820 + 3) \div (800 + 3) = 1823 \div 803 \fallingdotseq 2.27\)
\(\lfloor 2.27 \rfloor = 2\)
이해의 핵심
왜 정척과 부재 양쪽에 톱날 두께를 더할까요? 정척에서 부재를 \(n\)개 재단하면, 자르는 횟수는 마지막 한 번을 뺀 \(n - 1\)번이면 됩니다(마지막 부재는 정척의 끝까지 쓰면 되므로 거기서 자를 필요가 없기 때문입니다). 즉 \(n\)개가 나오는 조건은 \(n \times l + (n - 1) \times k \leq L\)입니다. 이 양변에 \(k\)를 더하면 \(n \times (l + k) \leq L + k\)가 되어, ‘부재 1개를 \(l + k\), 정척을 \(L + k\)로 보고 나눗셈한다’는 것만으로 판정할 수 있는 형태가 됩니다. 현장에서는 ‘부재 길이 + 톱날 두께’를 개수만큼 더해 정척 이하면 나온다고 세는 간이법(자르는 횟수를 \(n\)번으로 보는 방법)도 자주 씁니다. 이 계산기는 위의 \(n - 1\)번으로 세는 방법을 쓰므로 간이법보다 1개 더 나온다고 표시될 때가 있습니다. 정척의 양 끝을 잘라 내고 쓰는(끝을 쓰지 않는) 경우에는 그만큼을 정척 길이에서 빼서 입력하세요. 톱날 두께를 무시하면 개수를 틀릴 때가 있습니다. 예를 들어 1820 mm를 4등분한 455 mm 부재는 톱날 두께가 없으면 딱 4개가 나오지만, 톱날 두께가 3 mm이면 \(4 \times 455 + 3 \times 3 = 1829 > 1820\)이 되어 4개째가 9 mm 모자라고, \(\lfloor 1823 \div 458 \rfloor = 3\)개밖에 나오지 않습니다.
부재마다 따로 사는 경우의 개수
수학 표기 (일반적인 수식)
\(B_i\) \(=\) \(\lceil\) \(q_i\) \(\div\) \(m_i\) \(\rceil\)
\(B_{\text{sep}}\) \(=\) \(B_1 + B_2 + \cdots\)
말로 쓴 표기 (기호를 말로 바꾼 식)
③ 부재 \(i\)만 재단하는 데 필요한 정척 개수(\(B_i\)) \(=\) \(\lceil\) ① 부재 \(i\)의 필요 개수(\(q_i\)) \(\div\) ② 정척 1개에서 나오는 개수(\(m_i\)) \(\rceil\)
⑤ 따로 사는 경우의 합계 개수(\(B_{\text{sep}}\)) \(=\) ④ 부재마다의 개수 \(B_1,\ B_2,\ \ldots\)의 합계
공식을 말로 읽으면
① 부재 \(i\)의 필요 개수(\(q_i\)) 를
② 정척 1개에서 나오는 개수(\(m_i\)) 로 나누고 소수점 아래를 올리면(기호 \(\lceil\ \rceil\)는 ‘올림’이라는 뜻)
③ 부재 \(i\)만 재단하는 데 필요한 정척 개수(\(B_i\)) 가 되고
④ 부재마다의 개수 \(B_1,\ B_2,\ \ldots\)의 합계 가
⑤ 따로 사는 경우의 합계 개수(\(B_{\text{sep}}\)) 가 됩니다
간단한 예
1820 mm 정척(톱날 두께 3 mm)에서 다리 800 mm × 4개, 띠장 500 mm × 2개, 보강 400 mm × 2개를 부재마다 따로 정척을 써서 재단하는 경우의 개수는
\(\text{다리}: \lceil 4 \div 2 \rceil = 2,\quad \text{띠장}: \lceil 2 \div 3 \rceil = 1,\quad \text{보강}: \lceil 2 \div 4 \rceil = 1\)
\(B_{\text{sep}} = 2 + 1 + 1 = 4\)
이해의 핵심
‘다리용 정척’ ‘띠장용 정척’처럼 부재 종류마다 정척을 나눠서 사는 것이 이 단순 계산입니다. 다리는 정척 1개에서 2개가 나오므로 4개라면 정척 2개, 띠장은 3개가 나오므로 2개라면 정척 1개(1개분이 남음), 보강은 4개가 나오므로 정척 1개(2개분이 남음)로 합계 4개입니다. 이 방법은 생각하기 쉽고 산 뒤에 재단할 때도 헷갈리지 않지만, 띠장과 보강의 정척에는 각각 큰 여유가 남습니다. 다음의 ‘혼합 재단’은 이 남은 길이에 다른 부재를 채워 개수를 줄이는 방법입니다.
혼합 재단(긴 부재부터 차례로 채우는 배치)과 자투리
그림
수학 표기 (일반적인 수식)
\(w\) \(=\) \(L\) \(-\) \(l_1 + l_2 + \cdots + l_n\) \(-\) \(n\) \(\times\) \(k\)
말로 쓴 표기 (기호를 말로 바꾼 식)
⑤ 정척 1개의 자투리(\(w\)) \(=\) ① 정척 길이(\(L\)) \(-\) ② 그 정척에서 재단하는 부재 길이 \(l_1,\ l_2,\ \ldots,\ l_n\)의 합계 \(-\) ③ 그 정척에서 재단하는 개수(\(n\)) \(\times\) ④ 톱날 두께(\(k\))
공식을 말로 읽으면
① 정척 길이(\(L\)) 에서
② 그 정척에서 재단하는 부재 길이 \(l_1,\ l_2,\ \ldots,\ l_n\)의 합계 를 빼고, 다시
③ 그 정척에서 재단하는 개수(\(n\)) 와
④ 톱날 두께(\(k\)) 를 곱한 값(자를 때마다 깎이는 몫)도 빼면
⑤ 정척 1개의 자투리(\(w\)) 가 됩니다(0보다 작아지면 마지막 부재가 정척 끝까지 딱 맞게 들어갔다는 뜻이므로 자투리는 0)
간단한 예
위의 예(다리 800 mm × 4개, 띠장 500 mm × 2개, 보강 400 mm × 2개)를 1820 mm 정척으로 혼합 재단하면, 정척 3번째에는 띠장 2개와 보강 2개가 들어가고, 그 자투리는
자투리(\(w\)) \(=\) 정척(1820 mm) \(-\) 부재 합계(500 + 500 + 400 + 400 mm) \(-\) 개수(4개) \(\times\) 톱날 두께(3 mm)
\(1820 - (500 + 500 + 400 + 400) - 4 \times 3 = 1820 - 1800 - 12 = 8\)
이해의 핵심
혼합 재단의 배치는 다음 3단계의 절차(First Fit Decreasing = ‘긴 순서로, 처음 들어가는 곳에’)로 정합니다. ① 모든 부재를 긴 순서로 늘어놓습니다(같은 길이는 입력한 줄의 순서). ② 맨 앞의 부재부터 차례로, 지금 있는 정척 중 ‘남은 길이가 그 부재 이상’인 첫 번째 1개에 넣습니다. 넣은 정척의 남은 길이는 ‘부재 길이 + 톱날 두께’만큼 줄어듭니다. ③ 어느 정척에도 들어가지 않으면 새 정척을 1개 추가해 거기에 넣습니다. 위의 예에서는 긴 순서로 800, 800, 800, 800, 500, 500, 400, 400으로 늘어놓고, 정척 1번째에 800을 2개(남은 길이 214 mm, 3개째의 800은 들어가지 않음), 정척 2번째에 800을 2개, 정척 3번째에 500을 2개 넣으면 남은 길이가 814 mm이므로 400이 2개 들어가고 남은 길이는 8 mm입니다. 합계 3개면 되고, 따로 사는 경우의 4개보다 1개 적습니다. 이 절차는 생각하기 쉽고 결과도 좋지만, 항상 최소 개수가 되는 것은 아닙니다. 예를 들어 700 mm × 4개, 600 mm × 2개, 450 mm × 2개를 1820 mm 정척(톱날 두께 3 mm)에서 재단하면 이 절차로는 정척이 4개가 되지만, ‘700 + 600 + 450’을 2개와 ‘700 + 700’을 1개로 조합하면 3개면 됩니다. 긴 순서의 절차는 ‘700을 2개씩 먼저 채워 버리기’ 때문에 이 조합을 찾지 못하는 것입니다. 수학적으로는 이 절차의 개수가 최소 개수의 약 1.22배 + 1개 이내에 들어간다는 것이 증명되어 있고, 다음의 ‘이론상 최소 개수’와 일치하면 그것이 최소라고 확인할 수 있습니다. 그래서 이 계산기는 절차의 개수가 이론상 최소 개수에 미치지 못할 때, 부재가 모두 60개 이하면 ‘정척 1개씩, 남아 있는 가장 긴 부재를 반드시 포함하는 채우는 방법을 모두 시도하는’ 탐색(분기 한정법)으로 가장 적은 개수의 배치를 구해 그것으로 바꿉니다. 위의 700·600·450 예도 탐색으로 3개의 배치가 표시됩니다. 탐색을 끝까지 마쳤는지는 결과의 ‘혼합 재단 판정’에 표시하며, 부재가 모두 60개를 넘으면 절차대로의 근사가 됩니다.
이론상 최소 개수(하한)
수학 표기 (일반적인 수식)
\(B_{\min}\) \(=\) \(\lceil\) \(\sum_i q_i\,(l_i + k)\) \(\div\) \((L + k)\) \(\rceil\)
말로 쓴 표기 (기호를 말로 바꾼 식)
③ 이론상 최소 개수(\(B_{\min}\)) \(=\) \(\lceil\) ① 모든 부재의 (길이 + 톱날 두께) 합계 \(\sum_i q_i\,(l_i + k)\) \(\div\) ② 정척 길이 + 톱날 두께 \(L + k\) \(\rceil\)
공식을 말로 읽으면
① 모든 부재의 (길이 + 톱날 두께) 합계 \(\sum_i q_i\,(l_i + k)\) 를
② 정척 길이 + 톱날 두께 \(L + k\) 로 나누고 소수점 아래를 올리면
③ 이론상 최소 개수(\(B_{\min}\)) 가 됩니다
간단한 예
위의 예(다리 800 mm × 4개, 띠장 500 mm × 2개, 보강 400 mm × 2개, 정척 1820 mm, 톱날 두께 3 mm)의 이론상 최소 개수는
\(4 \times (800 + 3) + 2 \times (500 + 3) + 2 \times (400 + 3) = 3212 + 1006 + 806 = 5024\)
\(5024 \div (1820 + 3) = 5024 \div 1823 \fallingdotseq 2.76\)
\(\lceil 2.76 \rceil = 3\)
이해의 핵심
‘정척 1개에서 나오는 개수’의 공식에서 본 것처럼, 정척 1개에 들어가는 부재는 ‘부재마다의 (길이 + 톱날 두께) 합계가 정척 길이 + 톱날 두께 이하’라는 조건을 만족합니다. 아무리 잘 배치해도, 모든 부재의 (길이 + 톱날 두께) 합계를 \(L + k\)로 나눈 값보다 개수를 적게 할 수는 없습니다. 이것이 하한(이보다 아래로는 갈 수 없는 값)입니다. 혼합 재단의 개수가 이 하한과 일치하면 더 줄일 수 없는 최소 개수(최적)로 확정됩니다. 위의 예는 3개로 하한인 3개와 일치하므로 최적입니다. 일치하지 않을 때는 부재 조합을 바꾸면 줄일 수 있을 가능성이 있지만, 하한은 어디까지나 ‘이보다 적어지지는 않는다’는 값이므로 반드시 하한까지 줄일 수 있는 것은 아닙니다. 예를 들어 1000 mm × 3개를 1820 mm 정척(톱날 두께 3 mm)에서 재단하면 하한은 \(\lceil 3009 \div 1823 \rceil = 2\)개이지만, 정척 1개에 1000 mm는 1개밖에 들어가지 않으므로 어떻게 조합해도 3개가 필요합니다. 이 계산기는 부재가 모두 60개 이하면 조합을 탐색하므로, ‘탐색해 확인’이라고 표시된 개수는 하한보다 많아도 그것이 최소입니다.
아낄 수 있는 개수와 대략적인 비용
수학 표기 (일반적인 수식)
\(\Delta\) \(=\) \(B_{\text{sep}}\) \(-\) \(B\)
\(T\) \(=\) \(u\) \(\times\) \(B\)
말로 쓴 표기 (기호를 말로 바꾼 식)
③ 아낄 수 있는 개수(\(\Delta\)) \(=\) ① 따로 사는 경우의 개수(\(B_{\text{sep}}\)) \(-\) ② 혼합 재단 개수(\(B\))
⑤ 대략적인 비용(\(T\)) \(=\) ④ 정척의 단가(\(u\)) \(\times\) 혼합 재단 개수(\(B\))
공식을 말로 읽으면
① 따로 사는 경우의 개수(\(B_{\text{sep}}\)) 에서
② 혼합 재단 개수(\(B\)) 를 빼면
③ 아낄 수 있는 개수(\(\Delta\)) 가 되고,
④ 정척의 단가(\(u\)) 에 혼합 재단 개수 \(B\)를 곱하면
⑤ 대략적인 비용(\(T\)) 이 됩니다
간단한 예
위의 예에서 정척 1개가 5,000원일 때, 아낄 수 있는 개수와 비용은
\(\Delta = 4 - 3 = 1\)
\(T = 5000 \times 3 = 15000\)
\(5000 \times 4 - 15000 = 5000\)
이해의 핵심
따로 사는 경우의 비용은 \(u \times B_{\text{sep}}\), 혼합 재단의 비용은 \(u \times B\)이므로 차액은 \(u \times \Delta\)입니다. 단가에는 정척 1개당 가격을 넣습니다. 각재처럼 1단(12개 묶음) 단위로 팔거나 재적(m³) 단위로 값이 매겨진 목재라면 1개당 단가로 바꿔서 넣으세요. 비용은 목재 자체만이며 재단비·배송비·도료 등은 포함하지 않습니다.
정척에서 나오는 개수는 ‘(정척 + 톱날 두께) ÷ (부재 + 톱날 두께)’를 버림해서 구하는 것이 기본입니다. 여러 종류의 부재는 긴 순서로 ‘처음 들어가는 정척에 채우는’ 혼합 재단으로 개수를 줄일 수 있습니다. 그 개수가 ‘이론상 최소 개수’와 일치하면 더는 줄일 수 없습니다. 일치하지 않을 때도 부재가 모두 60개 이하면 조합을 탐색해 가장 적은 개수의 배치를 구합니다.

용어·기호 해설

기호

\(L\) 엘 정척 길이(mm). 사 오는 목재 1개의 길이입니다. Length(길이)의 첫 글자로, 부재 길이 \(l\)과 구별하려고 대문자로 썼습니다.
\(l\), \(l_i\) 엘, 엘 아이 부재(재단하고 싶은 목재)의 길이(mm). \(l_i\)의 \(i\)는 ‘\(i\)번째 종류의 부재’라는 번호입니다(다리·띠장·보강처럼 종류가 여럿이기 때문입니다).
\(k\) 케이 톱날 두께(mm). 자를 때마다 이만큼 목재가 깎여 짧아집니다. kerf(영어로 ‘톱이 지나간 자리’)의 첫 글자입니다.
\(m\), \(m_i\) 엠, 엠 아이 정척 1개에서 나오는 부재 개수. \(m = \lfloor (L + k) \div (l + k) \rfloor\)로 구합니다.
\(q_i\) 큐 아이 부재 \(i\)의 필요 개수. quantity(수량)의 첫 글자입니다.
\(B_i\), \(B_{\text{sep}}\) 비 아이, 비 셉 \(B_i\)는 부재 \(i\)만 재단하는 데 필요한 정척 개수(\(\lceil q_i \div m_i \rceil\)). \(B_{\text{sep}}\)는 부재마다 따로 사는 경우의 합계 개수(\(B_i\)의 합계)로, sep은 separate(따로)의 줄임말입니다.
\(B\) 비 혼합 재단(긴 부재부터 차례로 채우는 배치)으로 필요한 정척 개수. 이 페이지의 주인공인 값입니다.
\(n\) 엔 어떤 정척 1개에서 재단하는 부재 개수. number(수)의 첫 글자입니다. 자투리 공식에서 톱날 두께를 몇 번 뺄지에 씁니다.
\(w\) 더블유 정척 1개의 자투리(쓰지 않고 남는 길이, mm). waste(남은 것·낭비)의 첫 글자입니다.
\(B_{\min}\) 비 민 이론상 최소 개수(하한). \(\lceil \sum_i q_i (l_i + k) \div (L + k) \rceil\)로 구하며, 혼합 재단 개수 \(B\)가 이것과 일치하면 최적입니다. min은 minimum(최소)의 줄임말입니다.
\(\Delta\) 델타 아낄 수 있는 개수. \(B_{\text{sep}} - B\)입니다. 그리스 문자 델타는 ‘차이’를 나타낼 때 자주 쓰입니다(difference의 첫 글자 d에 해당하는 문자).
\(u\) 유 정척 1개당 단가(원). unit price(단가)의 첫 글자입니다.
\(T\) 티 대략적인 비용(원). total(합계)의 첫 글자입니다. 목재 자체만이며 재단비·배송비는 포함하지 않습니다.
\(\lfloor x \rfloor\) 바닥 함수(내림) 소수점 아래를 버려서 정수로 만드는 기호(예: \(\lfloor 2.27 \rfloor = 2\), \(\lfloor 3 \rfloor = 3\)). 나오는 개수는 ‘다 들어가지 않는 몫을 버리는’ 것이므로 이 기호를 씁니다.
\(\lceil x \rceil\) 천장 함수(올림) 소수점 아래를 올려서 정수로 만드는 기호(예: \(\lceil 2.76 \rceil = 3\), \(\lceil 2 \rceil = 2\)). 사는 개수는 ‘모자라는 몫만큼 1개 늘리는’ 것이므로 이 기호를 씁니다.
\(\sum\) 시그마 ‘모두 더한다’는 것을 나타내는 기호. \(\sum_i q_i (l_i + k)\)라면 부재 종류 \(i\)마다 \(q_i (l_i + k)\)를 계산해 모두 더합니다. 그리스 문자 시그마로, Sum(합계)의 첫 글자 S에 해당하는 문자입니다.

용어

정척 목재·철근·파이프 등이 정해진 길이로 팔릴 때의 그 표준 길이. 한국의 각재(다루끼)는 3600 mm(12자)가 기본이고 2400 mm도 있으며, 구조목(2x4)은 2400~6000 mm, 그중 3600 mm가 가장 흔합니다. 목재상이나 온라인 목재 쇼핑몰의 재단 서비스로 원하는 길이로 잘라 사는 경우도 많습니다.
톱날 두께 톱으로 자를 때 날의 두께만큼 목재가 깎여 없어지는 길이(커프, 절단 손실). 원형톱 날의 두께는 1.5~2 mm 정도가 많고, 절단면의 뜯김이나 먹선(자를 위치의 표시) 몫까지 생각해 3 mm 안팎으로 잡는 것이 일반적입니다. 쓰는 날의 두께(날에 새겨진 kerf 값)를 알면 그 값을 넣으세요. 자르는 횟수만큼 쌓이므로 짧은 부재를 많이 재단할수록 영향이 커집니다.
재단 계획 자재(판재·각재·정척)에서 필요한 부재를 어떻게 잘라 낼지 정하는 작업. 재단 배치라고도 합니다. 이 페이지는 ‘길이만’ 생각하는 1차원 재단이며, 합판에서 가로세로로 잘라 내는 2차원 재단은 다루지 않습니다.
자투리 부재를 잘라 낸 뒤에 남는 자재. 정척 끝에 남는 짧은 토막을 말합니다. 자투리가 적을수록 자재 낭비가 적고 수율이 높아집니다.
혼합 재단 ‘다리용’ ‘띠장용’으로 정척을 나누지 않고, 정척 1개의 남은 길이에 다른 종류의 부재도 채워 재단하는 방법. 부재 종류마다 사는 것보다 개수를 줄일 수 있는 경우가 많으며, 이 페이지의 재단 배치표가 그 재단 방법을 보여 줍니다.
First Fit Decreasing (FFD) ‘큰 순서(Decreasing)로, 처음 들어가는 곳(First Fit)에 채운다’는 배치 절차. 짐을 상자에 담는 문제(빈 패킹 문제)의 대표적인 근사 방법으로, 이 페이지의 혼합 재단에 씁니다. 간단한 절차에 비해 결과가 좋고, 최소 개수의 약 1.22배 + 1개 이내에 들어간다는 것이 증명되어 있지만, 항상 최소가 되는 것은 아닙니다. 이 계산기는 이 절차의 개수가 하한에 미치지 못할 때, 모두 60개 이하면 분기 한정법으로 최소 배치를 탐색합니다.
빈 패킹 문제 크기가 정해진 상자(빈)에 여러 크기의 짐을 담을 때 상자 수를 가장 적게 하는 담는 방법을 구하는 문제. 목재 재단 계획(정척 = 상자, 부재 = 짐)은 그 1차원 버전입니다. 짐이 많으면 최적의 담는 방법을 구하는 계산량이 급격히 늘어나므로, 실무에서는 절차가 정해진 근사 방법(FFD 등)을 자주 씁니다.
분기 한정법 가능한 조합을 가지처럼 나눠 차례로 시도하면서, ‘이 앞을 어떻게 진행해도 지금까지의 최선보다 좋아지지 않는다’고 판명된 가지는 도중에 잘라 내는(한정하는) 방법으로, 전부 시도하지 않고 최적해를 찾는 탐색 방법. 이 페이지에서는 정척 1개마다의 채우는 방법을 가지로 하고, ‘쓴 개수 + 남은 부재로 계산한 하한’이 지금까지의 최선 이상이 된 가지를 잘라 내어 가장 적은 개수의 배치를 구합니다.
수율 자재 중 제품(부재)으로 쓸 수 있었던 비율. 이 페이지에서는 ‘부재의 합계 길이 ÷ 사는 정척의 합계 길이’이며, 자투리와 톱날 두께가 적을수록 100%에 가까워집니다.
하한 ‘아무리 궁리해도 이보다 작아지지는 않는다’는 값. 이 페이지의 이론상 최소 개수는 하한이며, 배치의 개수가 이것과 일치하면 최적임을 알 수 있습니다. 일치하지 않을 때도 반드시 하한까지 줄일 수 있는 것은 아닙니다(1000 mm × 3개를 1820 mm에서 재단하는 예에서는 하한 2개, 실제로는 3개).
최적해 가능한 모든 방법 중에서 가장 좋은 답. 이 페이지에서는 ‘정척 개수가 가장 적은 배치’를 말합니다. 혼합 재단 개수가 하한과 일치하면 최적해입니다. 일치하지 않아도 조합을 모두 탐색해 ‘더 줄지 않는다’고 확인되면 최적해입니다.
자 전통적인 길이의 단위로 1자 = 약 303 mm(10/33 m)입니다. 지금도 목재 현장에서는 각재 3600 mm를 ‘12자’, 1820 mm를 ‘6자’처럼 부릅니다. 1자 = 10치입니다.
구조목 단면이 약 38 mm × 89 mm인 2x4(투바이포)를 비롯한 규격 목재로, DIY에서 가장 구하기 쉬운 목재입니다. 길이는 2400~6000 mm로 팔리며 3600 mm가 가장 흔하고, 재단 서비스로 짧게 잘라 살 수도 있습니다.

먼저 알아 두면 좋은 내용

이 페이지의 계산을 ‘의미를 알고’ 쓸 수 있도록, 먼저 알아 두면 좋은 내용을 정리했습니다.

나눗셈과 나머지(초등학교 3~4학년, 8~10세)
  • ‘1820을 800으로 나누면 몫 2, 나머지 220’처럼 나눗셈의 몫이 ‘몇 개 나오는가’, 나머지가 ‘얼마나 남는가’를 나타낸다는 것을 아는 것
어림하기(올림·버림·반올림)(초등학교 5학년, 10~11세)
  • 버림·올림·반올림의 차이를 아는 것
  • ‘나오는 개수는 왜 버림이고, 사는 개수는 왜 올림인가’를 자신의 말로 설명할 수 있는 것
소수의 나눗셈(초등학교 5~6학년, 10~12세)
  • \(1823 \div 803 \fallingdotseq 2.27\) 같은 나눗셈의 몫의 크기를 짐작할 수 있는 것(계산 자체는 계산기로 해도 됩니다)
문자를 사용한 식과 부등식(중학교, 12~15세)
  • ‘\(n\)개가 나오는 조건은 \(n \times l + (n-1) \times k \leq L\)’처럼 조건을 문자식으로 나타낼 수 있는 것
  • 부등식의 양변에 같은 수를 더해도 대소 관계가 바뀌지 않는다는 것(\(n(l + k) \leq L + k\)로의 변형)
비율과 백분율(초등학교 6학년, 11~12세)
  • 수율 ‘부재의 합계 길이 ÷ 정척의 합계 길이 × 100’처럼 비율을 백분율(%)로 나타낼 수 있는 것

Excel로 계산하는 방법

아래 표를 통째로 복사해 Excel의 A1 셀에 붙여 넣으면 그대로 사용할 수 있습니다.
‘정척 1개에서 나오는 개수’를 구하는 표
정척 길이(mm) 1820
부재 길이(mm) 800
톱날 두께(mm) 3
정척 1개에서 나오는 개수 =INT((B1+B3)/(B2+B3))
‘부재마다 따로 사는 경우의 개수’를 구하는 표
부재의 필요 개수 4
정척 1개에서 나오는 개수 2
필요한 정척 개수 =ROUNDUP(B1/B2,0)
‘정척 1개의 자투리’를 구하는 표
정척 길이(mm) 1820
그 정척에서 재단하는 부재 길이의 합계(mm) 1800
그 정척에서 재단하는 개수 4
톱날 두께(mm) 3
자투리(mm) =MAX(0,B1-B2-B3*B4)
‘이론상 최소 개수’를 구하는 표
모든 부재의 (길이 + 톱날 두께) 합계(mm) 5024
정척 길이 + 톱날 두께(mm) 1823
이론상 최소 개수 =ROUNDUP(B1/B2,0)
‘아낄 수 있는 개수와 대략적인 비용’을 구하는 표
따로 사는 경우의 개수 4
혼합 재단 개수 3
정척의 단가(원) 5000
아낄 수 있는 개수 =B1-B2
대략적인 비용(원) =B3*B2
붙여 넣으면 B열의 위쪽 행이 입력란이 되고, 마지막 행이 자동 계산 결과가 됩니다.
‘INT(값)’은 소수점 아래를 버려 정수로 만드는 함수(공식의 ⌊ ⌋), ‘ROUNDUP(값, 0)’은 올리는 함수(공식의 ⌈ ⌉)입니다.
첫 번째 표의 B4는 2개, 두 번째 표의 B3은 2개, 세 번째 표의 B5는 8 mm, 네 번째 표의 B3은 3개, 다섯 번째 표는 절약 1개·비용 15,000원이 됩니다.
‘긴 부재부터 차례로 채우는’ 배치 자체는 부재를 긴 순서로 정렬해 위에서부터 차례로 정척에 맞춰 가는 수작업이 되므로, 스프레드시트는 ‘나오는 개수’ ‘자투리’ ‘하한’의 확인에 쓰고, 재단 배치표는 이 페이지나 아래의 Python 코드로 만드는 것이 확실합니다.

Google 스프레드시트로 계산하는 방법

아래 표를 통째로 복사해 Google 스프레드시트의 A1 셀에 붙여 넣으면 그대로 사용할 수 있습니다.
‘정척 1개에서 나오는 개수’를 구하는 표
정척 길이(mm) 1820
부재 길이(mm) 800
톱날 두께(mm) 3
정척 1개에서 나오는 개수 =INT((B1+B3)/(B2+B3))
‘부재마다 따로 사는 경우의 개수’를 구하는 표
부재의 필요 개수 4
정척 1개에서 나오는 개수 2
필요한 정척 개수 =ROUNDUP(B1/B2,0)
‘정척 1개의 자투리’를 구하는 표
정척 길이(mm) 1820
그 정척에서 재단하는 부재 길이의 합계(mm) 1800
그 정척에서 재단하는 개수 4
톱날 두께(mm) 3
자투리(mm) =MAX(0,B1-B2-B3*B4)
‘이론상 최소 개수’를 구하는 표
모든 부재의 (길이 + 톱날 두께) 합계(mm) 5024
정척 길이 + 톱날 두께(mm) 1823
이론상 최소 개수 =ROUNDUP(B1/B2,0)
‘아낄 수 있는 개수와 대략적인 비용’을 구하는 표
따로 사는 경우의 개수 4
혼합 재단 개수 3
정척의 단가(원) 5000
아낄 수 있는 개수 =B1-B2
대략적인 비용(원) =B3*B2
Excel과 같은 식(INT·ROUNDUP·MAX도 같은 함수 이름)을 그대로 쓸 수 있습니다. 표를 통째로 복사해 A1 셀에 붙여 넣고, B열을 자신의 수치로 바꾸세요.

Python으로 계산하는 방법

import math

stock_length = 1820      # 정척 길이(mm)
kerf = 3                 # 톱날 두께(mm)
unit_price = 5000        # 정척 1개의 단가(원)
# 필요한 부재: (이름, 길이 mm, 개수)
parts = [("다리", 800, 4), ("띠장", 500, 2), ("보강", 400, 2)]

# 부재마다 따로 사는 경우의 개수(정척 1개에서 나오는 개수로 나누어 올림)
stocks_separate = 0
for name, length, qty in parts:
    per_stock = (stock_length + kerf) // (length + kerf)   # 버림(공식의 ⌊ ⌋)
    stocks_separate += math.ceil(qty / per_stock)           # 올림(공식의 ⌈ ⌉)

# 혼합 재단: 긴 부재부터 차례로, 처음 들어가는 정척에 채운다(First Fit Decreasing)
items = sorted([(length, name) for name, length, qty in parts for _ in range(qty)], key=lambda t: -t[0])
stocks = []   # 정척마다 {"parts": [...], "remaining": 남은 길이}
for length, name in items:
    for stock in stocks:
        if length <= stock["remaining"]:
            stock["parts"].append((name, length))
            stock["remaining"] = max(0, stock["remaining"] - length - kerf)
            break
    else:
        stocks.append({"parts": [(name, length)], "remaining": max(0, stock_length - length - kerf)})

# 이론상 최소 개수(하한)
lower_bound = math.ceil(sum(qty * (length + kerf) for name, length, qty in parts) / (stock_length + kerf))

print(f"부재마다 따로 사는 경우: {stocks_separate}개")
print(f"혼합 재단: {len(stocks)}개(이론상 최소 개수 {lower_bound}개)")
for i, stock in enumerate(stocks, 1):
    names = " + ".join(f"{name}{length}" for name, length in stock["parts"])
    print(f"  정척 {i}번째: {names}  자투리 {stock['remaining']} mm")
print(f"아낄 수 있는 개수: {stocks_separate - len(stocks)}개")
print(f"대략적인 비용: {unit_price * len(stocks):,}원")
표준 라이브러리만으로 동작합니다. ‘//’가 버림 나눗셈(공식의 ⌊ ⌋), math.ceil()이 올림(공식의 ⌈ ⌉)입니다. 이 코드는 ‘긴 순서로 채우는’ 절차(First Fit Decreasing)만 하므로, 이 페이지의 계산기가 조합 탐색으로 더 적은 개수를 찾은 경우에는 그 개수와 일치하지 않을 수 있습니다(하한과 일치하면 같습니다). for 문의 else는 반복이 break 없이 끝났을 때(어느 정척에도 들어가지 않았을 때) 실행되어 새 정척을 추가합니다. 맨 위의 정척·톱날 두께·부재 목록을 자신의 수치로 바꿔 실행하세요.

LaTeX 등 수식 언어로 쓰는 법(복사 가능)

정척 1개에서 나오는 개수
m = ⌊(L + k) ÷ (l + k)⌋
m = \left\lfloor \frac{L + k}{l + k} \right\rfloor
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>m</mi>
    <mo>=</mo>
    <mo>&#x230A;</mo>
    <mfrac>
      <mrow><mi>L</mi><mo>+</mo><mi>k</mi></mrow>
      <mrow><mi>l</mi><mo>+</mo><mi>k</mi></mrow>
    </mfrac>
    <mo>&#x230B;</mo>
  </mrow>
</math>
m = |__ (L + k) / (l + k) __|
Floor[(L + k)/(l + k)]
m := floor((L + k)/(l + k));
m = floor((L + k)/(l + k));
m = ⌊(L + k)/(l + k)⌋
부재마다 따로 사는 경우의 개수
Bᵢ = ⌈qᵢ ÷ mᵢ⌉,  Bsep = B₁ + B₂ + …
B_i = \left\lceil \frac{q_i}{m_i} \right\rceil,\quad B_{\text{sep}} = \sum_i B_i
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <msub><mi>B</mi><mi>i</mi></msub>
    <mo>=</mo>
    <mo>&#x2308;</mo>
    <mfrac><msub><mi>q</mi><mi>i</mi></msub><msub><mi>m</mi><mi>i</mi></msub></mfrac>
    <mo>&#x2309;</mo>
    <mo>,</mo>
    <msub><mi>B</mi><mtext>sep</mtext></msub>
    <mo>=</mo>
    <munder><mo>&#x2211;</mo><mi>i</mi></munder>
    <msub><mi>B</mi><mi>i</mi></msub>
  </mrow>
</math>
B_i = |~ q_i / m_i ~|,  B_"sep" = sum_i B_i
Total[Ceiling[q/m]]
B := add(ceil(q[i]/m[i]), i = 1 .. n);
B = sum(ceil(q ./ m));
B_i = ⌈q_i/m_i⌉, B_sep = ∑_i B_i
혼합 재단(긴 부재부터 차례로 채우는 배치)과 자투리
w = L − (l₁ + l₂ + … + lₙ) − n × k
w = L - \sum_{j=1}^{n} l_j - n k
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>w</mi>
    <mo>=</mo>
    <mi>L</mi>
    <mo>&#x2212;</mo>
    <munderover><mo>&#x2211;</mo><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover>
    <msub><mi>l</mi><mi>j</mi></msub>
    <mo>&#x2212;</mo>
    <mi>n</mi><mo>&#x2062;</mo><mi>k</mi>
  </mrow>
</math>
w = L - sum_(j=1)^n l_j - n k
L - Total[l] - Length[l]*k
w := L - add(l[j], j = 1 .. n) - n*k;
w = L - sum(l) - numel(l)*k;
w = L − ∑_(j=1)^n l_j − nk
이론상 최소 개수(하한)
Bmin = ⌈Σ qᵢ(lᵢ + k) ÷ (L + k)⌉
B_{\min} = \left\lceil \frac{\sum_i q_i (l_i + k)}{L + k} \right\rceil
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <msub><mi>B</mi><mi>min</mi></msub>
    <mo>=</mo>
    <mo>&#x2308;</mo>
    <mfrac>
      <mrow><munder><mo>&#x2211;</mo><mi>i</mi></munder><msub><mi>q</mi><mi>i</mi></msub><mo>(</mo><msub><mi>l</mi><mi>i</mi></msub><mo>+</mo><mi>k</mi><mo>)</mo></mrow>
      <mrow><mi>L</mi><mo>+</mo><mi>k</mi></mrow>
    </mfrac>
    <mo>&#x2309;</mo>
  </mrow>
</math>
B_min = |~ (sum_i q_i (l_i + k)) / (L + k) ~|
Ceiling[Total[q*(l + k)]/(L + k)]
Bmin := ceil(add(q[i]*(l[i] + k), i = 1 .. n)/(L + k));
Bmin = ceil(sum(q .* (l + k))/(L + k));
B_min = ⌈(∑_i q_i (l_i + k))/(L + k)⌉
아낄 수 있는 개수와 대략적인 비용
Δ = Bsep − B,  T = u × B
\Delta = B_{\text{sep}} - B,\quad T = u \times B
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
  <mrow>
    <mi>&#x394;</mi>
    <mo>=</mo>
    <msub><mi>B</mi><mtext>sep</mtext></msub>
    <mo>&#x2212;</mo>
    <mi>B</mi>
    <mo>,</mo>
    <mi>T</mi>
    <mo>=</mo>
    <mi>u</mi>
    <mo>&#xD7;</mo>
    <mi>B</mi>
  </mrow>
</math>
Delta = B_"sep" - B,  T = u * B
{bSep - b, u*b}
Delta := Bsep - B;  T := u*B;
Delta = Bsep - B; T = u*B;
Δ = B_sep − B, T = u × B

ChatGPT 에게 물어서 계산하는 방법

당신은 목공 재단 계획의 계산 도우미입니다. 다음 계산을 반드시 Python 코드를 실제로 실행해서 하고, 실행 결과의 수치만을 근거로 답하세요(암산이나 추측으로 답하지 마세요).

정척 1820 mm 목재에서 톱날 두께 3 mm로 다리 800 mm × 4개, 띠장 500 mm × 2개, 보강 400 mm × 2개를 잘라 냅니다.
다음 값을 각각 구하세요.
1. 부재마다 정척 1개에서 나오는 개수((1820 + 3) ÷ (부재 길이 + 3)의 버림)
2. 부재마다 따로 정척을 쓰는 경우의 정척 합계 개수(필요 개수 ÷ 나오는 개수의 올림의 합계)
3. 긴 부재부터 차례로 ‘처음 들어가는 정척에 채우는’ 방법(First Fit Decreasing)으로 배치했을 때의 정척 개수와, 정척마다의 부재 내역과 자투리(부재를 넣을 때마다 남은 길이는 ‘길이 + 톱날 두께’만큼 줄어드는 것으로 합니다)
4. 이론상 최소 개수(모든 부재의 (길이 + 톱날 두께) 합계를 1820 + 3으로 나눈 값의 올림)

계산에 쓴 코드와 실행 결과의 수치를 보여 주세요.

사용법
  1. 1
    숫자 입력
    계산하고 싶은 숫자를 입력란에 입력합니다
  2. 2
    계산
    ‘계산’ 버튼을 누릅니다
  3. 3
    결과 확인
    계산 결과가 바로 표시됩니다. 계산의 원리와 공식 해설도 같은 페이지에서 확인할 수 있습니다
  DataChef의 특징
간단하고 무료
무료로 횟수 제한 없이 변환
전문 지식 없이도 직관적이고 간단하게 사용
회원가입 불필요
접속 즉시 바로 사용 가능
개인정보를 등록하지 않고도 이용할 수 있습니다
안전하고 안심
통신을 강력하게 암호화
"다운로드"를 누르면 파일이 자동으로 삭제됩니다
빠른 속도
기다림 없는 쾌적한 표시 속도와 변환 속도
워터마크 없음
워터마크 없음
출처 표기 불필요
상업적 이용 가능
무료로 상업적 이용 가능
상업적 이용 허가 연락도 필요 없습니다