문제 요약 주어진 입력 데이터에서 가장 많이 나온 값을 구하여라. (출현빈도가 동일한 경우 큰 값을 화면에 출력해라.) 풀이 #include #include using namespace std; FILE* stream; int T; int N; int Cnt[101]; int Input[1000]; int fnSolve(void) { int MaxNum = 0; int Ret = 0; for (int i = 0; i T; for (int t = 1; t > N; for (int i =..
알고리즘 트레이닝
개요 덱(Double Ended Queue)은 앞과 뒤 양쪽 모두에서 데이터의 삽입과 제거가 가능한 큐를 말합니다. 구현 덱을 구성하는 연산은 다음과 같습니다.fnIinit () : 덱을 초기화 합니다. fnAddFront(item) : 덱의 전단에 item 을 삽입합니다. fnDelFront() : 덱의 전단에서 item 을 1개 삭제 합니다. fnAddRear(item) : 덱의 후단에 item 을 삽입합니다. fnDelRear() : 덱의 후단에서 item 을 1개 삭제 합니다. fnGetFront() : 덱의 전단에 있는 item 을 1개 얻습니다. 단, 삭제는 하지 않습니다. fnGetRear() : 덱의 후단에 있는 item 을 1개 얻습니다. 단, 삭제는 하지 않습니다. fnIsEmpty()..
개요 배열을 이용하여 Queue 를 작성할 경우, 큐의 상태를 저장하는 변수의 값(head, tail)이 감소하지 않고 계속 증가하기 때문에 한계치(QUEUESIZE) 에 도달하면 더 이상 올바른 저장소를 가리키지 못하기 때문에 이를 보완할 수 있는 방법이 필요합니다.변수의 값이 최대치에 도달할 경우, 이를 초기값으로 돌려주는 방식으로 원형큐를 사용완가능합니다.※ 참고로 원형큐를 링버퍼라고도 합할 수 있습니다.다음은 이러한 아이디어를 C 언어로 구현한 것입니다. 구현 앞서 작성한 포스트의 배열로 구현한 (선형)큐의 소스코드를 기초로 합니다. // main.c #define QUEUESIZE 256 #include typedef struct { int head, tail; int items[QUEUESIZ..
자료형(Data Type) 컴퓨터에서 자료(데이터)란 0과 1의 나열입니다. 예를 들어 01001100110010110101110011011100 은 정수일 수도 있고 실수, 문자일수도 있습니다. 이 자료의 해석결과인 값은 자료가 어떤 형(Type)인지에 따라 달라집니다.데이터를 어떻게 해석하면 되는 것인지 컴파일러(또는 인터프리터)에게 알려주는 속성이라고 할 수 있습니다. 이 자료형은 일반적으로 값(value)의 집합과 그 값과 관련된 연산들의 집합을 의미합니다. 집합 즉, 수학적인 모델입니다.자료형은 다음과 같은 종류가 있습니다. 원시자료형 : 기본빌딩블록 (부울, 정수, 실수, 문자 등) 복합자료형 : 원시형 또는 또다른 복합자료형을 조합하여 만든 것 (struct, 배열, 문자열 등) 추상자료형 ..
문제출처 : HackerRank - The Bomberman Game 문제 요약 설치되면 3초후에 폭발하는 폭탄이 있습니다. 폭탄의 영향 범위는 폭탄의 상,하,좌,우의 셀로 Valid 에서 Clear 상태로 바뀝니다. 만약 폭발 범위 내에 다른 폭탄이 있다면 이 경우 함께 폭발하지 않고 폭탄이 제거됩니다. 매초 다음과 같은 일이 발생합니다. 최초에 임의의 지점에 폭탄이 설치되어 있습니다. 1초 동안 아무일도 발생하지 않습니다. 다시 1초 후, 보드에 비어 있는 모든 지점에 폭탄이 설치됩니다. 1초 후, 폭탄이 폭발합니다. 3, 4의 과정이 반복됩니다. n 초 후에 상태를 출력하세요. 입력형식 첫줄은 r, c, n 3개의 정수를 받습니다. r과 c는 각각 상태를 확인할 영역의 크기입니다. n 은 상태를 알..
출처 : HackerRank - 3D Surface Area 문제 요약 1 x 1 x 1 크기의 블록으로 구성된 3D 입체의 겉 면적을 구하여라.입력형식첫줄은 3D 입체물이 놓여질 판의 크기를 2개의 숫자로 제공합니다.다음줄에는 빈칸으로 구별한 숫자를 제공하는데, 이 숫자는 해당 좌표에 있는 블록의 높이를 의미합니다.제약사항 1 ≤ H, W ≤ 100 1 ≤ A_i,j ≤ 100 출력형식물체의 겉면적을 숫자로 화면에 출력합니다. 풀이 1 x 1 x 1 블록으로 구성된 입체물이므로 겉 면적은 6방향에서 제공됩니다. 위, 아래의 면적은 해당 위치에 블록이 쌓여 있을 경우는 1 없을 경우는 0으로 판단 할 수 있습니다. 측면의 면적은 옆에 쌓여진 블록과의 높이가 차이가 날 경우, 그 차이만큼이 면적으로 더해진..
출처 : HackerRank - Halloween Sale 문제 요약나는 s 라는 금액을 가지고 있습니다. 상품의 가격이 주어질 때, 나는 최대 몇개의 상품을 살 수 있을까요?상품의 가격은 다음과 같은 규칙을 갖고 있습니다.매달 1개의 상품이 상점에 입고됩니다. 최초에 상품의 가격은 p 입니다. 매달 d 씩 가격이 떨어집니다. 단, m 미만으로는 가격이 떨어지지 않습니다.예를 들어,p=20, d=3, m=6 로 주어졌다면 매달입고되는 상품의 가격은 다음과 같이 변합니다. 20, 17, 14, 11, 8, 6, 6, 6, 6, 6, 6 ... 첫 달은 20 이었으며 매달 3씩 줄어들지만 최소한 6의 가격 밑으로 떨어지지 않습니다.입력형식p, d , m , s 를 한줄에 공백(space)로 나누어 제공합니다..
개요 정점(vertex, 노드, 포인트) 들과 이들 사이의 연결관계를 표현한 추상적 개념 및 자료구조 입니다.그래프의 표현은 아래의 그림과 같이 정점과 이들을 잊는 간선(edge)의 집합으로 나타냅니다. 용어 경로 간선으로 연결된 정점의 순서를 의미합니다. 순환 한 정점에서 시작하여 그 정점 자신으로 돌아오는, 길이가 3 이상인 경로를 의미합니다. 연결된 그래프 모든 정점에 대해서 그래프 내의 다른 정점과 연결된 경로가 있다면 연결된 그래프라고 부릅니다. 완전그래프 그래프의 모든 두 정점쌍이 하나의 간선으로 연결된 그래프 입니다. 트리 순환이 존재하지 않는 그래프입니다. 종류 그래프는 다음과 같이 3가지 종류로 나누어 볼 수 있습니다. 무향 그래프 (Undirected Graphs) 각 정점을 연결하는 ..