본문 바로가기

전체 글

(1196)
백준 2562번 최대값 9개의 서로 다른 자연수가 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 번째 수인지를 구하는 프로그램을 작성하시오. 예를 들어, 서로 다른 9개의 자연수 3, 29, 38, 12, 57, 74, 40, 85, 61 이 주어지면, 이들 중 최댓값은 85이고, 이 값은 8번째 수이다. sorting도 필요없이 그냥 너무 쉬운 문제..... #include using namespace std; int main(void) { int arr[9]; int n; for(int i=0; i>arr[i]; } int max=0; for(int i=0; imax){ max =arr[i]; } } for(int i =0; i
백준 1100번 하얀칸 체스판은 8*8크기이고, 검정 칸과 하얀 칸이 번갈아가면서 색칠되어 있다. 가장 왼쪽 위칸 (0,0)은 하얀색이다. 체스판의 상태가 주어졌을 때, 하얀 칸 위에 말이 몇 개 있는지 출력하는 프로그램을 작성하시오. 2차원 배열로 간단히 풀 수 있는 문제. #include using namespace std; int main(void) { int count=0; char arr[8][8]; for(int i=0; i>arr[i]; } for(int i=0; i
백준 10821번 정수의 개수 숫자와 콤마로만 이루어진 문자열 S가 주어진다. 이 때, S에 포함되어있는 정수의 개수를 구하는 프로그램을 작성하시오. S의 첫 문자와 마지막 문자는 항상 숫자이고, 콤마는 연속해서 주어지지 않는다. 또, 0으로 시작하는 정수는 주어지지 않는다. 너무 쉬웠던 문제라 이게 맞나 싶을 정도였음.. #include #include using namespace std; int main(void) { string str; int cnt=1; cin>>str; for(int i=0; i
백준 10866번 덱 정수를 저장하는 덱(Deque)를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여덟 가지이다. push_front X: 정수 X를 덱의 앞에 넣는다. push_back X: 정수 X를 덱의 뒤에 넣는다. pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 덱에 들어있는 정수의 개수를 출력한다. empty: 덱이 비어있으면 1을, 아니면 0을 출력한다. front: 덱의 가장 앞에 있는 정수를 출력한다. 만약 덱에 들어있는 정수가 없는 경우에는 -..
백준 10845번 큐 push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1, 아니면 0을 출력한다. front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. back: 큐의 가장 뒤에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. 배열 사용하든지 벡터를 사용하든지 기능을 직접 구현하니 문제 조건 보다 메모리를 더 쓰게 되어서 자꾸 틀렸다고 하는 탓에, 그냥 STL에서 제공하는 queue를 사용해서 하기로 했다. 뭐 너무나도 쉬운문제.... ..
백준 10828번 스택 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스택이 비어있으면 1, 아니면 0을 출력한다. top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. 스택을 구현하는데 있어 시간을 최소로 하는 방법은 const 상수 MAX를 지정하여 배열을 생성하고 , 배열의 size로 사용할 변수를 지정하여 그 변수를 증가시키고 감소시키며 배열에 값을 저..
java - sudoku 코딩. 여기서 스도쿠는 9X9 사이즈로 한다. 스도쿠 규칙 1) 같은 열에 같은 숫자가 중복되면 안됨. 2) 같은 행에 같은 숫자가 중복되면 안됨. 3) 3X3 정사각형 안에 같은 숫자가 중복되면 안됨. [아이디어] 우선 back tracking 알고리즘을 사용하기로 한다. 0으로 초기화 되 있는 9X9 사이즈의 배열을 선언하고, 그 배열을 스도쿠 규칙에 맞게 채우는 함수를 호출 시킨다. 이 함수의 역할은 배열에서 0의 값을 갖는 좌표를 찾아 그 안에 수를 대입해보고 이 때 이 수가 promising한지 판단. promising하다면 이 수를 채운 배열을 가지고 재귀호출하여 다음 단계로 넘어간다. 이때 중요한 것은 숫자를 채우는 조건이 값이 비어있는 경우 이므로 몇번의 단계 호출 후에 잘못된 것을 알았을 때 그..
알고리즘 연습 및 개인 프로젝트 or 과제 업데이트 예정