Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- c#
- 구현
- 버킷 정렬
- 백준 17822
- ㅣ풀이
- AVL 시간 복잡도
- 조세퍼스 순열
- 별 찍기 10
- Stack 이란
- 1764
- 게리멘더링2
- 백준 17471
- 백준 5397
- qorwns
- 백준 2447
- 백준
- 해시 구현
- 자료구조
- heap
- 원판 돌리기
- C/C++ 구현
- 풀이
- 백준 1158
- 스택의 특징
- 백준 17779
- dfs
- 시간 복잡도
- 5397
- 백준 1406
- 해시구현
Archives
- Today
- Total
홍시홍의 프로그래밍
[프로그래머스] 멀쩡한 사각형 본문
분류 : 구현
요구사항
대각선을 그었을때, 대각선에 속하지 않는 사각형의 갯수 구하기
풀이
정답 도출식은 w*h - (w+h-gcd)이다
gcd구하는 방법은 유클리드 호제법이 있던데 그냥 구현해 보았따
우리 흔히 하는 방법으로 구했다
안나눠질때 까지 나누어주고 나눈 숫자는 곱해서 gcd를 찾는다
#include <iostream>
#include <math.h>
#include <algorithm>
using namespace std;
long long gcd1(long long w, long long h) {
long long num = 1;
while (true) {
long long tempmin = min(w, h);
long long flag = 0;
for (int i = 2; i <= tempmin; i++) {
if (w % i == 0 && h % i == 0) {
w = w / i;
h = h / i;
num = num * i;
flag = 1;
break;
}
}
if(flag==0)
break;
}
return num;
}
long long solution(int w, int h)
{
long long answer = 1;
long long nw = w;
long long nh = h;
long long gcdnum = gcd1(nw, nh);
answer = (nw * nh) - (nw + nh - gcdnum);
return answer;
}
'알고리즘 문제풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 타겟 넘버 (0) | 2020.04.10 |
---|---|
[프로그래머스] 베스트앨범 (0) | 2020.04.10 |
[프로그래머스] 쇠막대기 (0) | 2020.04.03 |
[프로그래머스] 크레인 인형뽑기 (0) | 2020.04.03 |
[프로그래머스] 디스크 컨트롤러 (0) | 2020.03.30 |
Comments