본문 바로가기

최대공약수2

[Swift][프로그래머스][math] 멀쩡한 사각형 요구능력 최대공약수(유클리드 호제법) 문제풀이 아래는 프로그래머스의 예제그림이다. 이렇게 그림만보면 어떻게 풀어야할지 머릿속이 깜깜하다. 똑같이 생긴게 4개가 보인다. w = 8, h = 12라고 했는데, 8,12랑 4가 연관이 있을까.. 생각해보면 최대공약수가 떠오르긴한다. 뭔가 확실한 해답은 아니니까 우선 넣어두고, 좌표가 (2,3), (4,6), (6,9), (8,12) 이렇게된다. 규칙성이 있는거같은데, 한 부분만 똑 떼서 보면, w = 2, h= 3일 때 쓸 수 있는 사각형은 2개 쓸 수 없는 사각형은 4개이다. (0, 0)에서 (2, 3)까지 가는데 가로로 2번가고 세로로 3번움직이면된다. 하지만, 가로로 2번가고 세로로 3번움직이면 사각형이 한번 겹친다. 그래서 X + Y - 1이라는 공식이.. 2022. 4. 25.
[Swift][Bruteforce] 백준 6064번(카잉 달력) 요구능력 효율적인 브루트포스, 유클리드호제법 문제풀이 처음에는 무작정 돌리다가 시간초과가 났는데, 그 이유는 시간복잡도가 O(N * M)이 되서 최악의 경우에는 40000 * 40000번이 돌아갔기 때문이다.. 그럼 시간을 줄이는 방법은 뭐가 있을까? 이렇게 x와 y와 같이 두 개의 수를 사용해서 목표값을 맞추는 문제는 하나의 값을 고정하고 문제를 풀면 시간이 꽤 많이 단축된다. x값을 고정해서 문제를 풀어보자. curX, curY를 각각 목표값 x,y에 맞추기 위한 수 라고 생각해보자. 예제의 첫번째인 10, 12, 3, 9로 예를 들어보면, 그럼 curX는 3으로 고정이다. 우리는 curY값이 9가될 때 몇 번째 해인지 출력해주면 된다. 단순히 1씩 더해서 9가되는건 당연히 아니다. 처음에 curY값.. 2022. 4. 11.