for 2 count

2015. 10. 13. 21:27Security ★ Development/알고리즘

반응형

문제는 더블릿 3 for에 있는 count입니다.

문제 사이트 주소입니다.

http://59.23.113.171/30stair/count/count.php?pname=count


ip주소가 바뀌었네요.


for문을 통해 숫자가 커지는 방향을 결정하고 숫자를 늘리고 줄이다보면 시간초과가 납니다.

숫자를 하나씩 거쳐가기보다 수가 주어졌을 때 그 주변의 수를 찾을 수 있어야합니다.  


첫번째 항이 있는 라인을 1, 두번째 항에서 대각선으로 있는 항들을 2, 네번째 항의 대각선라인을 3으로 보면 이는 각 대각선 라인의 숫자들의 개수이며 분모 혹은 분자의 최대값이 됩니다.  


1 2 3 4 5

2 3 4 5

3 4 5

4 5

5


이런식으로 말이죠.

그럼 찾으려는 항이 주어지면 for를 통해 1부터 ?까지의 합이 찾으려는 항보다 큰지를 정합니다.

?를 찾았으면 1~?까지의 합과 찾으려는 항의 차이를 이용해 찾으려는 항의 분모, 분자를 구할 수 있습니다.  

단, 항은 위에서 아래, 아래에서 위로 지그재그 형태의 카운팅을 하고 있으므로 이를 고려해야합니다.