Security ★ Development/알고리즘(45)
-
옥상 1
문제는 더블릿 옥상에 있는 natural입니다.문제 사이트 주소입니다.http://183.106.113.109/pool/natural/natural.php?pname=natural 받은 자연수들에 대해서 어떤 하나를 골라 다른 모든 수들과의 차의 절대값을 합했을 때 그 차가 가장 작으면서 수 자체도 작은 자연수를 찾는 문제입니다. 받은 모든 수들에 대해 2중 for문을 이용해 차를 계산할 자연수를 뽑고 다른 모든 수들에대해 차의 합을 구하는 연산을 하여도 모든 테스트에 대해 시간 초과가 뜨지 않습니다.
2014.11.11 -
divide and conquer 2
문제는 더블릿 20 divide and conquer에 있는 quad입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/quad/quad.php?pname=quad bfs를 이용한 재귀를 썼습니다. 우선 전체 사이즈를 검사합니다. 0과 1이 섞여 있으면 따로 선언한 배열의 첫 인덱스에 1을 넣습니다. 검사 과정을 함수로 만들어 영역을 4개로 분할하고 각 영역에 대해 함수를 호출하도록 합니다. 실제 호출은 하지 않고 큐에 넣어 예약합니다. 전체 영역 검사가 끝나고 큐에 데이터가 있으면 하나씩 꺼내 해당영역에 대해 검사하는 것을 반복합니다.검사를 할 때마다 검사 결과를 배열에 넣습니다. 저는 구조체를 선언하여 각 인덱스가 2가지 값을 가지도록하였습니다.모든 검사가 끝나면 배..
2014.11.09 -
다차원배열 3
문제는 더블릿 7 다차원배열에 있는 aja입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/aja/aja.php?pname=aja 처음에는 인접한 수가 +모양 ㄴ모양으로도 될 줄 알고 좀 생각해봤는데 ㅡ 혹은 ㅣ 모양으로만 인접한 것만 신경쓰면 되는 것 같습니다.배열이 작아서 일일이 계산해줘도 시간초과가 뜨지 않습니다.가로, 세로로 5개씩 합해줘서 가장 큰 값을 출력해주면 됩니다.
2014.11.02 -
divide and conquer 1
문제는 더블릿 20 divide and conquer에 있는 b_lineup입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/b_lineup/b_lineup.php?pname=b_lineup divide and conquer는 분할정복이란 뜻인데... 이 문제는 특별히 이런거 생각안해도 풀 수 있는 것 같습니다.문제를 설명하면 입력이 첫 줄 말고 한 줄에 2개씩 들어올 때가 있습니다. 이게 하나씩 들어오는 입력의 위치를 말하는 거고 이 사이에서 가장 큰 수와 가장 작은 수를 찾아 그 차이를 출력하면 됩니다. 알고리즘이 특별히 없습니다. 위에 설명한대로 입력을 다 받고 각 그룹, 1 5에서는 받은 키들중에 1과 5사이에 있는 것 중 최대값과 최소값을 구해서 차를 출력합니..
2014.11.01 -
다중 반복문 1
문제는 더블릿 4 다중 반복문에 있는 make_square입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/make_square/make_square.php?pname=make_square 어떤 수에 x를 곱했을 때 제곱수(같은 수를 곱해서 나온 수)가 되는 가장 작은 x를 구하는 것이 문제입니다.처음에 2중 for문으로 했으나 시간초과가 났습니다. 다중 반복문이래서 그랬는데...math.h를 인클루드하고 sqrt를 쓰면 됩니다. x를 올려가며 sqrt 정수부분 제곱이 원래의 값과 같을 때의 x를 출력하면 됩니다.
2014.11.01 -
다차원배열 2
* 틀린 내용이 있을 시 지적 부탁드립니다. 문제는 더블릿 7 다차원배열에 있는 parkside입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/parkside/parkside.php?pname=parkside 입력받은 수에대해 규칙적으로 출력하는 문제입니다. 2차원배열을 생성해서 2중 for문으로 문제에서 보여주는 모양에 맞게 값을 배열에 대입합니다.그리고 하나씩 출력하면서 값이 있으면 값, 스페이스를 출력하고 없으면 스페이스만 2번 출력해주면 됩니다.
2014.10.29