'Programing/알고리즘'에 해당되는 글 3건

  1. 2011.12.05 The Trip
  2. 2011.12.05 알고리즘 트레이닝 북 지뢰찾기
  3. 2011.12.05 알고리즘 트레이닝 북 3n+1 문제

The Trip

Programing/알고리즘 2011.12.05 18:18 |


// theTrip.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//

#include "stdafx.h"
#include <iostream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
 int pepleCnt = 0;

 cin >> pepleCnt;

 float* ExpenseMoney = new float[pepleCnt];
 memset( ExpenseMoney, 0.0f, sizeof(float)* pepleCnt);

 for(int i = 0; i< pepleCnt; ++i)
  cin>> (float)*(ExpenseMoney + i);


 float sum = 0.0f;
 for(int i = 0; i< pepleCnt; ++i)
 {
  sum += ExpenseMoney[i]; //합계를 구함.
 }
 float aver = sum/ pepleCnt; //평균을 구함


 float SumOfLowThenAver = 0.0f;
 for( int i = 0; i< pepleCnt; ++i)
 {
  //평균보다 돈을 적게 낸 사람들
  if( ExpenseMoney[i] < aver )
  {
   SumOfLowThenAver += aver - ExpenseMoney[i];

  }
 }

 printf("%f\n", SumOfLowThenAver);
 cout<<"내야할 총액:"<< SumOfLowThenAver <<endl;
 

 return 0;
}

 

'Programing > 알고리즘' 카테고리의 다른 글

The Trip  (0) 2011.12.05
알고리즘 트레이닝 북 지뢰찾기  (0) 2011.12.05
알고리즘 트레이닝 북 3n+1 문제  (0) 2011.12.05
Posted by 패스맨

댓글을 달아 주세요


// Minesweeper.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//

#include "stdafx.h"
#include <Windows.h>
#include <iostream>

using namespace std;


//해당배열의 주위 지룃수를 리턴함
int calc(int xsize ,char* tarr, int x, int y)
{

 // 특정 배열 구역을 찾음.
 char* arr = tarr + x + (xsize * y) ;

 if( (*arr) == '*' )
  return 9;

 int MineCnt = 0;
 // 그 특정 구역역 주위를 검색.
 //예외처리


 if( *(arr - 1) == '*' )
  MineCnt++;
 if( *(arr + 1) == '*' )
  MineCnt++;

 if( *(arr + (xsize* 1)) == '*' )
  MineCnt++;
 if( *(arr - (xsize* 1)) == '*' )
  MineCnt++;

 if( *(arr -1 - ( xsize* 1)  ) == '*')
  MineCnt++;
 if( *(arr -1 + ( xsize* 1)  ) == '*')
  MineCnt++;
 if( *(arr + 1 + ( xsize* 1)  ) == '*')
  MineCnt++;
 if( *(arr + 1 - ( xsize* 1)  ) == '*')
  MineCnt++;

 

 return MineCnt;
}


int _tmain(int argc, _TCHAR* argv[])
{
 int x= 0, y =0;


 cin >> x >>y;

 cout<< "x : "<<x << " y :"<<y <<endl;

 //x축 공간 +2만큼 더잡음
 int xsize = x+2;
 

 int mallocSize = (x+2)*(y+2); // 이렇게 하는이유는
 /*
 00000 ->y축+1
 0*..0
 0**.0
 0*.*0 ->0이 2개로 x축도 +2
 00000 ->y축+1
 포인터연산으로 접근할때 참조에러 일어나지 않도록...
  */

 char* arr = new char[ mallocSize ];
 memset( arr, 0x00, mallocSize );


 cout<<"정해진 행만큼 지뢰입력"<<endl;

 //input code
 for(int i = 1; i<= y; ++i)
 {
  for(int j = 1 ; j<= x; ++j)
  {
   cin>> *(arr + j + ( xsize*i ) );
  }

 }

 cout<<endl;
 // input confirm
 for(int i = 1; i<= y; ++i)
 {
  for(int j = 1 ; j<= x; ++j)
  {

   cout<< *(arr + j + ( xsize*i ) );
  }
  cout<<endl;
 }

 cout<<endl;
 //calc
 int* arr2 = new int[ mallocSize ];
 
 for(int i = 1; i<= y; ++i)
 {
  for(int j = 1 ; j<= x; ++j)
  {
   int temp=0;
   temp = calc( xsize, arr, j,i);

   *(arr2 + j +( xsize* i) ) = (int)temp;

  }
 }


 // print code
 for(int i = 1; i<= y; ++i)
 {
  for(int j = 1 ; j<= x; ++j)
  {

   cout<< *(arr2 + j + ( xsize*i ) );
  }
  cout<<endl;
 }

 return 0;
}

 

'Programing > 알고리즘' 카테고리의 다른 글

The Trip  (0) 2011.12.05
알고리즘 트레이닝 북 지뢰찾기  (0) 2011.12.05
알고리즘 트레이닝 북 3n+1 문제  (0) 2011.12.05
Posted by 패스맨

댓글을 달아 주세요


// AlgoChallenges.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//

#include "stdafx.h"
#include <iostream>

using namespace std;

int Calc(int num)
{
 
 int cnt = 1;

 while( num != 1)
 {
  //짝수면
  if( (num % 2) == 0 )
  {
   num = num / 2;

  }
  else //홀수면
  {
   num =(num* 3) +1;
  }

  cnt++;

 }
 

 return cnt;

}

int _tmain(int argc, _TCHAR* argv[])
{
 int inputA =0 , inputB = 0;
 cin >> inputA >> inputB;

 int curNum= 0;
 int oldMaxNum= 0;

 cout<< "A: " << inputA << ",  B: "<< inputB <<endl;

 for(int i = inputA; i<= inputB; ++i)
 {

  curNum = Calc(i);

  if(curNum > oldMaxNum)
   oldMaxNum = curNum;

 }

 cout<< oldMaxNum <<endl;
 

 return 0;
}

 

'Programing > 알고리즘' 카테고리의 다른 글

The Trip  (0) 2011.12.05
알고리즘 트레이닝 북 지뢰찾기  (0) 2011.12.05
알고리즘 트레이닝 북 3n+1 문제  (0) 2011.12.05
Posted by 패스맨

댓글을 달아 주세요