Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- priority_queue
- 완전탐색
- 코딩스킬
- 이런게4문제
- find
- C++
- 레벨2
- 시뮬레이션
- STL
- 코딩테스트
- 프로그래머스
- 삼성
- 2018
- swea
- 모의SW역량테스트
- 문자열
- BFS
- Set
- 레벨3
- 백준
- KAKAO
- 백트래킹
- dfs
- 삼성SW역량테스트
- 삼성SW테스트
- Map
- Sort
- substr
- 브루트포스
- dp
Archives
- Today
- Total
-
[프로그래머스] 레벨 2 - 멀쩡한 사각형 본문
https://programmers.co.kr/learn/courses/30/lessons/62048
코딩테스트 연습 - 멀쩡한 사각형 | 프로그래머스
가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상
programmers.co.kr
레벨 2의 문제다.
생성되는 직사각형의 개수는 gcd만큼이고, 한 직사각형 내 생성되는 하얀 네모는 (w/gcd) + (h/gcd)-1개이다.
따라서, 전체 네모의 개수 sum 에서 gcd개 만큼 (w/gcd)+(h/gcd)-1개를 곱한것을 빼주면 된다.
자료형에 유의해야 한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
using namespace std;
long long solution(int w,int h)
{
long long answer;
int gcd;
long long sum = (long long)w * (long long)h;
for(int i = ( w > h ) ? h : w; i > 0; i--){
if(w % i == 0 && h % i == 0){
gcd = i;
break;
}
}
answer = sum - gcd * ((w/gcd)+(h/gcd)-1);
return answer;
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs |
'1-4. 프로그래머스' 카테고리의 다른 글
[프로그래머스] 레벨 2 - 탑 (0) | 2020.02.03 |
---|---|
[프로그래머스] 레벨 2 - 카카오프렌즈 컬러링북 (2017 카카오코드 예선) (0) | 2020.02.03 |
[프로그래머스] 레벨 2 - 124 나라의 숫자 (0) | 2020.02.02 |
[프로그래머스] 레벨 3 - N으로 표현 (0) | 2020.01.31 |
[프로그래머스] 레벨 2 - 쇠막대기 (0) | 2020.01.31 |
Comments