더블릿(20)
-
for 2 count
문제는 더블릿 3 for에 있는 count입니다.문제 사이트 주소입니다.http://59.23.113.171/30stair/count/count.php?pname=count ip주소가 바뀌었네요. for문을 통해 숫자가 커지는 방향을 결정하고 숫자를 늘리고 줄이다보면 시간초과가 납니다.숫자를 하나씩 거쳐가기보다 수가 주어졌을 때 그 주변의 수를 찾을 수 있어야합니다. 첫번째 항이 있는 라인을 1, 두번째 항에서 대각선으로 있는 항들을 2, 네번째 항의 대각선라인을 3으로 보면 이는 각 대각선 라인의 숫자들의 개수이며 분모 혹은 분자의 최대값이 됩니다. 1 2 3 4 52 3 4 53 4 54 55 이런식으로 말이죠.그럼 찾으려는 항이 주어지면 for를 통해 1부터 ?까지의 합이 찾으려는 항보다 큰지를 정..
2015.10.13 -
koi4u 2011년 8 월 모의고사 1 번 koi4u_vega
문제는 더블릿 옥상에 있는 koi4u_vega입니다.문제 사이트 주소입니다.http://183.106.113.109/pool/koi4u_vega/koi4u_vega.php?pname=koi4u_vega 견우와 직녀의 거리가 주어지고 까마귀의 수와 움직이는데 필요한 시간, 제한 시간이 주어질 때 견우와 직녀가 제한 시간 내에 만날 수 있는지를 구한는 문제입니다. 거리는 음수값이 들어올 수 있기 때문에 항상 양수로 계산하도록해줍니다. 까마귀는 마리 수만큼 처음 거리를 차지하므로 남은 거리를 구하고 제한 시간과 필요한 시간을 통일되도록 시간으로 바꿔줍니다. 제한 시간보다 남은거리를 이동하는데 필요한 시간이 많을 경우, 그리고 모든 까마귀로 한번에 이동할 수 있을 경우 yes를 출력해줍니다.abs는 마지막 테스..
2015.02.12 -
다중 반복문 2 climbing
문제는 더블릿 4 다중 반복문에 있는 climbing입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/climbing/climbing.php?pname=climbing 깊이 n의 높이를 1분당 u만큼 오르고 다음 1분당 d만큼 떨어질 때 몇 분만에 다 오를 수 있는지를 구하는 문제입니다. 2분당 총 오르는 높이를 구하고 2분씩 오른 결과가 n-u보다 크거나 같을 때 1분 오른 시간만 더해주면 됩니다. 이 때 한번에 올랐을 때의 예외를 처리해줍니다.
2015.02.12 -
제31회 한국정보올림피아드 시/도 지역 본선 (2014.5.24) 초등부 문제 3,중등 2 koi_ant
문제는 더블릿 옥상에 있는 koi_ant입니다.문제 사이트 주소입니다.http://183.106.113.109/pool/koi_ant/koi_ant.php?pname=koi_ant 공간안에 개미가 있고 대각선으로만 몇 번 움직일 수 있을 때 다 움직이고 난 후 개미의 좌표를 구하는 문제입니다. if와 for를 통해 개미의 움직임을 하나씩 따라가고 t번 움직인 후의 좌표를 구하는 방법은 t가 커짐에 따라 시간 초과가 뜹니다.공간 안을 계속 움직일 경우 항상 같은 곳으로 올 때가 있는데 이 경우를 제외하더라도 문제를 해결할 수는 없습니다.개미가 움직인 좌표를 찾아내는 공식을 도출해야합니다.1차원적으로 봤을때 w칸을 움직일 수 있는 공간에서, 개미가 현재 좌표 p에서 t번 움직였을 때의 위치는 (p+t)%w로..
2015.02.11 -
다차원배열 4 plibrary
문제는 더블릿 7 다차원배열에 있는 plibrary입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/plibrary/plibrary.php?pname=plibrary 주어진 행렬에서 한 줄의 열이 모두 1인 것이 하나라도 있으면 yes, 아니면 no를 출력하는 문제입니다. for문을 통해 배열을 받고 행과 열을 바꿔 일일이 검사해줘도 시간제한이 뜨지않습니다.
2015.02.10 -
dynamic programming 7 subset
문제는 더블릿 21 dynamic programming에 있는 subset입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/subset/subset.php?pname=subset N까지의 합을 반으로 나누었을 때 이 나뉘어진 반의 합이 같은 수인 경우의 수를 구하는 문제입니다.간단히 설명하면 1~N까지의 수의 합(N(N+1)/2)의 반이 되는 1~N까지의 합의 경우의 수를 구하고 반으로 나누면 됩니다. 예를 들어 입력으로 7이 들어왔을 경우 1~7까지의 합의 반은 14인데 1~7까지의 합 중에 14가 되는 경우의 수를 구하고 이의 반을 출력해주면 됩니다.이를 위해 각 수까지의 합의 경우의 수를 가지고 있는 배열을 선언해줍니다.ar[40]; 0까지의 수를 가지고 만들 수..
2015.02.03