Algorithm(17)
-
graph, dfs 3
문제는 더블릿 16 graph, dfs에 있는 maze입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/maze/maze.php?pname=maze 전형적인 dfs로 풀 수 있는 이전에도 비슷한 문제를 풀었던것 같은데 갈 수 있는 길이 주어질 때 가장 빠르게 갈 수 있는 거리를 구하는 문제입니다. 배열의 크기와 갈 수 있는길(0), 없는길 (1)을 받습니다. 입력받는 방법도 다양하게 알아둬야 나중에 알고리즘 테스트시 입력가지고 시간을 소비하지 않을 수 있습니다. 여기서는 띄워쓰기 구분이 없는 숫자 형식으로 입력을 받는데 하나씩 받아야 하므로 %c로 받고 -'0'을 해줘서 숫자로 바꿔줍니다. 그리고 enter를 입력받지 않으면 안되는데 이것도 마지막에 입력받도록합니다.d..
2015.01.16 -
수학관련 1
문제는 더블릿 29 수학관련에 있는 jailer입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/jailer/jailer.php?pname=jailer 수학문제로 분류되어 있는데 그냥 시키는데로 풀어도 풀립니다.문이 있을 때 1부터 문의 수 까지 각 수의 배열은 문을 뒤집어 놓고 마지막까지 했을 때 열려있는 문의 개수를 구하는 문제입니다. 먼저 방을 나타내는 배열을 선언해둡니다. 0으로 초기화 될테니 이 상태를 닫혀있다고 봅니다. 그리고 for문을 돌려서 각 수마다 그 수의 배수인 인덱스는 값을 1로 반적시키고 1인것은 0으로 바꿉니다.문의 수만큼 실행한 다음에 값이 1인 인덱스의 수를 출력하면 됩니다.
2015.01.14 -
제31회 한국정보올림피아드 전국본선 (2014.7.11) 중등부 문제 1
문제는 더블릿 옥상에 있는 koi_path2014입니다.문제 사이트 주소입니다.http://183.106.113.109/pool/koi_path2014/koi_path2014.php?pname=koi_path2014 행렬이 있을 때 K가 0이면 1행 1열부터 끝까지, K가 0이 아니면 K가 들어있는 행렬을 거쳐갈 수 있는 경우의 수를 구하는 문제입니다.행렬에서 첫 위치부터 특정 위치까지, 특히 오른쪽 혹은 아래로만 움직일 수 있는 경우는 자주 나옵니다.예로 보면 7의 위치로 갈 수 있는 경우의 수는 2의 위치까지 갈 수 있는 경우의 수 + 6의 위치까지 갈 수 있는 경우의 수입니다. 15는 10의 위치까지 갈 수 있는 경우의 수 + 14의 위치까지 갈 수 있는 경우의 수입니다.이런식으로 K가 0일 때를 ..
2015.01.09 -
제31회 한국정보올림피아드 전국본선 (2014.7.11) 초등부 문제 2
문제는 더블릿 옥상에 있는 koi_color입니다.문제 사이트 주소입니다.http://183.106.113.109/pool/koi_color/koi_color.php?pname=koi_color 더블릿 다른 부류의 문제는 카테고리를 제목으로 쓰기 좋은데 옥상문제는 이전처럼 옥상 1, 2, 3하기가 좀 그래서 다르게 하기로했습니다.평면에 색종이를 하나씩 놓을 때 마지막 색종이까지 놓은 후의 각 색종이들의 보이는 영역을 출력하는 문제입니다.문제의 길이는 평균이상인데... 어렵지 않습니다.전역 변수로 배열을 잡아줍시다. 메모리가 64MB라는건 무제한이라는 것 같고. 색종이의 시작지점과 높이, 넓이를 입력받는데 문제에서 배열이 평소 자주 쓰는 인덱스로 되어있지 않습니다. 그래서 헷갈릴 수 있는데 어차피 넓이이므..
2015.01.08 -
dynamic programming 6
문제는 더블릿 21 dynamin programming에 있는 scv입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/scv/scv.php?pname=scv N*N의 맵의 왼쪽 위에서 시작하여 오른쪽, 아래로 움직이면서 최대한 많이 1을 거쳐갈 수 있도록 하는것이 문제입니다.전형적인 dp문제 중 하나로 힌트는 오른쪽 혹은 아래로만 움직일 수 있다는데에 있습니다. 오른쪽이나 아래로만 움직일 수 있으므로 map[i][j]번 째 scv는 map[i-1][j] 혹은 map[i][j-1]에서 온 것이 됩니다. 이 때 map[i][j]번 째의 scv가 많은 미네랄을 갖고 있으려면 map[i][j]에 미네랄이 있든 없든 우선 map[i-1][j] 혹은 map[i][j-1] 중에 많..
2015.01.07