본문 바로가기
공부/algorithm

[programmers] [1차] 멀쩡한 사각형

by 김쫘 2020. 2. 26.
멀쩡한사각형

멀쩡한 사각형

 

처음에 쉽게 풀려고 머리 안굴리고 하다가 ㅠ..ㅋㅋ 실패했다.

직접 그려보면서 했을 때는 이거다~ 라고 생각하고 풀어서 냈는데, 아니었다.

 

 

정확도 50퍼..

반은 맞고 반은 틀렸다.

그래서 프로수학러에게 도움을 구해 함께 머리를 맞대고 고민을 해서 다시 풀었다.

 

패턴을 봤을 때, 아래 그림과 같은 규칙이 생긴다.

 

반복되는 패턴은 (W/GCD)x(H/GCD) 의 너비를 가지고,

패턴 내 사용하지 못하는 사각형의 수는 (W/GCD)+(H/GCD)-1이다.

그리고 해당 패턴은 GCD개이다.

따라서 사용할 수 없는 사각형의 전체 개수는 GCD*((W/GCD)+(H/GCD)-1) = W+H-GCD개가 된다.

전체 사각형 개수에서 사용할 수 없는 사각형의 개수를 빼주면 멀쩡한 사각형 개수가 나온다.

 

 

BigInteger 클래스를 사용하면 아래와 같이 한 줄로도 만들 수 있다.

 

 

'공부 > algorithm' 카테고리의 다른 글

[programmers] 모의고사  (0) 2020.05.18
[programmers] 체육복  (0) 2020.04.07
[programmers] [1차] 비밀지도  (0) 2020.02.26
[programmers] [1차] 다트 게임  (0) 2020.02.24
[programmers] 실패율  (0) 2020.02.15

댓글