[C++]UVA 231 캐쳐 미사일 검사 국방부 무기 납품 업체는 여러 공격 마사일을 차단하는 능력이 있는 캐쳐라고 불리는 새로운 방어용 마사일의 시험 검사를 방금 완료했다. 캐쳐는 훌륭한 방어용 마시일이 될 것이다. 캐처는 빠른 속도로 앞, 뒤 옆으로 이동할 수 있다. 그리고 위험하지 않게 공격용 마사일을 차단할수 있다. 그러나, 한 가지 결함이 존재했다. 캐쳐는 초기 높이에 도달하도록 발사되면, 차단한 마지막 미사일 보다 더 높이 움직일 동력을 갖고 있지 못하다. 납품업체가 완료했던 시험 검사는 컴퓨터 전쟁 시뮬레이션에서 적군이 공격하는 상황이다. 단지ㅣ 검사이기 때문에, 시뮬레이션이 캐쳐의 수직 이동 능력만 검사하였다. 각 시뮬레이션에서 캐쳐는 일정한 시간 간격으로 발사된 공격 미사일의 순서에 따라..
웜 바이러스 신종 바이러스인 윔 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 윔 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 윔 바이러스에 걸리게 된다. 예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 윔 바이러스에 걸리면 윔 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 윔 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크 상에서 연결되어 있지 않기 때문에 영향을 받지 않는다. 어느 날 1번 컴퓨터가 윔 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때, 1번 컴퓨터를 통해 윔 바이러스에..
음악 프로그램 인터넷 방송 KOI (Korea Open Internet)의 음악 프로그램 PD인 남일이는 자기가 맡은 프로그램 ‘뮤직 KOI'에서 가수들의 출연 순서를 정하는 일이 골치 아프다. 순서를 정하기 위해서는 많은 조건을 따져야 한다. 그래서 오늘 출연 예정인 여섯 팀의 가수들에 대해서 남일이가 보조 PD 세 명에게 각자 담당한 가수들의 출연 순서를 정해오게 하였다. 보조 PD들이 가져온 것은 아래와 같다. 1 4 3 6 2 5 4 2 3 첫 번째 보조 PD는 1번 가수가 먼저, 다음에 4번 가수, 다음에 3번 가수가 출연하기로 순서를 정했다. 두 번째 보조 PD는 6번, 2번, 5번, 4번순으로 자기 담당 가수들의 순서를 정해 왔다. 한 가수를 여러 보조 PD들이 담당할 수도 있다. 마지막으로..
11.목걸이 문제 당신은 n(n≤40)개의 구슬로 만든 목걸이를 가지고 있는데, 구슬은 붉은색, 푸른색, 흰색의 세가지 색 중 하나이다. 예를 들어 다음과 같은 목걸이가 있을 수 있다. brbrrrbbwrrwwbbbrrrrwwb b,r,w는 각각 푸른색(blue), 붉은색(red), 흰색(white) 구슬을 나타낸다. 목걸이는 원형으로 연결되어 있으므로 맨앞의 b와 맨끝의 b는 연결되어 있으며, 또한 wbbbrrrrwwb,brbrrrbbwrrw라고 표현해도 위의 것과 똑같은 목걸이를 나타낸다. 목걸이의 한 군데를 끊어서 직선으로 늘어 놓을 때 앞쪽에서 시작해서 똑같은 색깔이 계속되는 구슬과 뒤쪽에서 시작해서 똑같은 색깔이 계속되는 구슬을 모으고자 한다. (앞에서 시작해서 계속되는 구슬의 색과 뒤에서부터 ..
UVA10496 부저 모으기 카렐은 각각의 위치가 x, y 정수 좌표계로 세팅된 직사각형 좌표 시스템에서 행동하는 로봇이다. 카렐이 땅위에 떨어진 여러 부저들을 줍는 것을 도와줄 프로그램을 작성해야 한다. 이를 위해서, 각 부저가 위치한 곳으로 카렐을 이끌어야 한다. 카렐이 시작 지점으로부터 모든 부저들을 다 거치고 시작 지점으로 돌아오는 최단 경로의 길이를 구하는 프로그램을 작성하여라. 카렐은 x 축과 y 축을 따라서 이동할 수만 있다. (i,j)에서 인접한 위치 (i,j+1), (i,j-1), (i-1,j), (i+1,j) 로 이동하는 것은 비용 1이 사용된다. 카렐의 영역은 20 X 20 크기를 넘지 않으며, 주워야 할 부저는 최대 10 개다. 각 좌표는 (x, y) 쌍으로 구성된다. 입력 입력은 ..
#include #include using namespace std; struct data { int a,b,c; }p[100]; int cmp(const data a, const data b) //지역변수로 지정해주어서 함수가 종료되면 //a,b 변수가 사라져서 메모리 낭비를 줄여줌 { return a.c < b.c; //p[i].c의 값을 기준으로 정렬 } void main() { FILE *fp=fopen("input.txt","r"); int a,i; fscanf(fp,"%d", &a); //입력받는 값의 갯수 입력 for(i=1;i
UVA10003 막대 자르기 나무 막대를 여러 조각들로 잘라야만 한다. 가장 적당한 업체인 아날로그 벌목 공업사는 잘라야 될 막대의 전체 길이에 따라서 돈을 청구한다. 이들의 작업 절차는 한 시간에 한번만 자를 것을 요구한다. 자르는 순서를 달리하면 다른 조각들이 만들어질 수 있다. 예를 들어, 끝에서 2, 4, 7 미터에서 자를 수 있는 길이 10 미터의 막대기를 생각해 보자. 자르는 순서는 몇 가지가 있을 수 있다. 이럴 경우 처음 막대는 10 미터였으며, 자른 이후에는 8 미터에서 다음 4를 잘라야 하며, 마지막 한번 자르려면 6의 막대에서 자르므로, 10 + 8 + 6 = 24 의 돈을 막대 자르는 데 지출해야 한다. 또 다른 방법은 먼저 4에서 자르고, 다음은 2에서 자르면 4에서 2를 자르고,..
떡 먹는 호랑이 하루에 한 번 산을 넘어가는 떡 장사 할머니는 호랑이에게 떡을 주어야 산을 넘어갈 수 있는데, 욕심 많은 호랑이는 어제 받은 떡의 개수와 그저께 받은 떡의 개수를 더한 만큼의 떡을 받아야만 할머니를 무사히 보내 준다고 한다. 예를 들어 첫째 날에 떡을 1개 주었고, 둘째 날에는 떡을 2개 주었다면 셋째 날에는 1+2=3개, 넷째 날에는 2+3=5개, 다섯째 날에는 3+5=8개, 여섯째 날에는 5+8=13개를 주어야만 무사히 산을 넘어갈 수 있다. 우리는 산을 무사히 넘어온 할머니에게 오늘 호랑이에게 몇 개의 떡을 주었는지, 그리고 오늘이 호랑이를 만나 떡을 준지 며칠이 되었는지를 알아내었다. 할머니가 호랑이를 만나서 무사히 넘어온 D째 날에 준 떡의 개수가 K개임을 알 때, 여러분은 할머..
가족 찾기 그래프는 아주 쉬운 문제에서부터 까다로운 문제까지 해결의 실마리를 제공한다. 유명한 외판원 문제나 최소 신장 트리 문제는 아주 어려운 문제이지만 그래프에 효과적인 알고리즘을 적용하여 해결된다. 이번 문제에서는 기본적인 그래프 탐색에 관해 학습하고 자 한다. 문제 ( 난이도 ★★☆☆☆) 건수네 학교에서 부모님들과 학생들이 모두 참석한 행사를 하고 있다. 행사 중 모든 사람 들이 모여서 할 수 있는 놀이 중 가족 찾기가 있다. 다만 놀이에 모든 사람이 포함되는 것은 아니고 정사각형을 만들 수 있는 일부 사람들이 놀이에 참가한다. 놀이의 규칙은 다 음과 같다 같은 가족이면 서로 좋아해야 한다. 같은 가족은 2명 이상이다 다른 가족은 서로 싫어한다. 좋아하는 사람을 표시할 때는 1을 표시하고 싫어하는..
- Total
- Today
- Yesterday