분류 전체보기(168)
-
제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 -
함수 2
문제는 더블릿 8 함수에 있는 bpalin입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/bpalin/bpalin.php?pname=bpalin 1에서 100000사이의 수를 이진수로 바꿨을 때 그 이진수가 회귀수이면 해당 숫자를 출력하는 문제입니다.간단하게 1에서 100000까지 for문을 돌면서 값을 2진수로 바꿉니다. 2진수로 바꾼 값은 하나씩 char형 배열에 넣어주고 넣어준 크기를 카운트 한 다음에 처음과 끝, 처음+1과 끝-1, 처음+2와 끝-2를 하나씩 비교해주며 같지 않은 경우가 하나라도 있으면 회귀수가 아니라고 판단하고 넘어갑니다. 모든 비교 결과 전부 같으면 회귀수이므로 출력해주고 다음 값을 검사하면됩니다.
2015.01.07 -
dynamic programming 5
문제는 더블릿 21 dynamic programming에 있는 gc입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/gc/gc.php?pname=gc 입력으로 주어진 수 n을 1부터 n*2까지 차례대로 원 위에 쓰고 서로 엇갈리지 않게 선을 그을 수 있는 전체 경우의 수를 구하는 문제입니다. 이 문제에는 규칙이 있습니다. n=3일 때를 보면 1-2를 그었을 때 남은 숫자는 4개로 이를 서로 엇갈리지 않게 그을 수 있는 방법은 n이 2일 때와 같습니다. n=4일 때는 1-2를 그었을 때 남은 숫자가 6개로 이는 n=3일 때의 모든 경우의 수와 같습니다.즉 다음 경우의 수를 구하는데 이전 n값의 답을 구할 필요가 있습니다. 이 규칙을 보면 1->? 로 가는 선을 구하는데 ..
2015.01.06 -
배열 1
문제는 더블릿 5 배열에 있는 coci_modulo입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/coci_modulo/coci_modulo.php?pname=coci_modulo 배열에 속해있는 만큼 간단한 문제입니다.우선 받은 모든 수를 42로 나눠 나머지를 저장합니다.그리고 새로운 배열을 생성하여 첫 번째 나머지를 넣고 모든 수를 돌면서 해당 나머지가 새로운 배열에 있으면 넣지 않고 카운터를 하지 않으며 새로운 배열에 없는 나머지인 경우 그 나머지를 넣고 카운터를 합니다. 나머지는 0이 나올 수도 있으므로 새로운 배열은 0으로 초기화하면 안됩니다.
2015.01.04 -
graph, dfs 2
문제는 더블릿 16 graph, dfs에 있는 snail_trails입니다.문제 사이트 주소입니다.http://183.106.113.109/30stair/snail_trails/snail_trails.php?pname=snail_trails 맵에서 갈 수 없는 곳이 있을 때 상하좌우로 중복되지 않고 끊기지 않기 최대한 많이 움직일 수 있는 거리를 찾는 것이 목적입니다. 문제 그대로 한번 방향을 잡고 막힐 때까지 가면서 카운터를 세고 가장 높은 카운터를 출력해주면 됩니다.일단 문제의 맵을 입력받습니다. 그리고 시작점부터 우측 혹은 아래로 이동을 시작하는데 막다른 곳이 나오면 방향을 바꾸고 지나갔던 곳이 나오면 종료하는 재귀를 사용합니다.종료 조건이 지나간 곳을 만났을 때 입니다.다음 위치는 현재 방향의 한..
2015.01.04