목록분류 전체보기 (289)
촉촉한초코칩
문제 알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오. 팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다. 입력 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. 출력 첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다. #include #include //팰림드롬 : 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어 int main(void) { char str[100], re_str[100] = ""; scanf("%s", str); int str_l..
문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 2*N-1 변수를 따로 저장한다. 처음에 출력되야할 별 개수 1개를 star에 저장하고, 공백개수인 n-1을 index에 저장한다. 먼저 5번째 줄까지는 별이 증가하는 구간이므로 i를 n까지 반복하고 공백 개수만큼 for문 돌려서 공백을 출력한다. star 개수만큼 for문을 돌려서 *을 출력한다. 만약 i가 n과 같다면 for문을 빠져나오고, 아니라면 star은 2씩 증가, index는 1 감소시킨다. 감소하는 구간에는 먼저 index 1 증가, star 2 감소시키고 1까지 줄어드는 for문을 만든다. 마찬가지로 공백 개수, ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/poqVw/btskd7s8UwT/Q5OTrFrWzOlI361ixWvHgk/img.png)
문제 알고리즘 입문방 오픈 채팅방에서는 새로운 분들이 입장을 할 때마다 곰곰티콘을 사용해 인사를 한다. 이를 본 문자열 킬러 임스는 채팅방의 기록을 수집해 그 중 곰곰티콘이 사용된 횟수를 구해 보기로 했다. ENTER는 새로운 사람이 채팅방에 입장했음을 나타낸다. 그 외는 채팅을 입력한 유저의 닉네임을 나타낸다. 닉네임은 숫자 또는 영문 대소문자로 구성되어 있다. 새로운 사람이 입장한 이후 처음 채팅을 입력하는 사람은 반드시 곰곰티콘으로 인사를 한다. 그 외의 기록은 곰곰티콘을 쓰지 않은 평범한 채팅 기록이다. 채팅 기록 중 곰곰티콘이 사용된 횟수를 구해보자! 입력 첫 번째 줄에는 채팅방의 기록 수를 나타내는 정수 N 이 주어진다. (1≤N≤100000) 두 번째 줄부터 N 개의 줄에 걸쳐 새로운 사람의..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/mMnal/btsjpEDSgO5/crwukdCZbM4fD9gpQiPYM0/img.png)
문제 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2번째 바구니, ..., 가장 오른쪽 바구니를 N번째 바구니라고 부른다. 도현이는 앞으로 M번 바구니의 순서를 역순으로 만들려고 한다. 도현이는 한 번 순서를 역순으로 바꿀 때, 순서를 역순으로 만들 범위를 정하고, 그 범위에 들어있는 바구니의 순서를 역순으로 만든다. 바구니의 순서를 어떻게 바꿀지 주어졌을 때, M번 바구니의 순서를 역순으로 만든 다음, 바구니에 적혀있는 번호를 가장 왼쪽 바구니부터 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N (1 ≤ N ≤ 100)과 M (1 ≤ M ≤ 100)이 주..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bRTNhp/btsjbpOdgB7/DYQCIUSk0UsvJDNOtwznK1/img.png)
11-1 해시법 해시법 (hashing) 데이터를 저장할 위치 (인덱스)를 간단한 연산으로 구하는 것 해시값 (hash value) : 배열의 키 값(각 요소의 값)을 배열의 요소 개수로 나눈 나머지를 다시 정리한 값 > 데이터에 접근할 때 사용한다. 해시 테이블 (hash tabe) : 해시 값이 인덱스가 되도록 원래의 키 값을 저장한 배열 해시 함수 (hash function) : 키 값을 가지고 해시 값을 만드는 과정 > 나머지를 구하는 연산 또는 나머지 연산을 다시 응용한 연산 버킷 (bucket) : 해시 테이블의 각 요소 * 해시와 해시 함수 충돌을 피하기 위해 해시 함수는 해시 테이블 크기 이하의 정수를 가능한 치우치지 않도록 (중복되지 않도록) 골게 분포되도록 만들어야 한다. 해시 테이블 ..
10-1 트리 트리 (Tree) : 데이터 사이의 계층 관계를 나타내는 자료구조 트리 구성 요소 각각의 노드(node)는 가지(edge)를 통해 다른 노드와 연결된다. 루트 (root) : 가장 윗부분에 위치하는 노드 리프 (leaf) : 트리의 가장 아랫부분에 위치하는 노드 (더이상 뻗어나갈 수 없는 마지막에 노드가 위치한다.) 안쪽 노드 : 루프를 포함하여 리프를 제외한 노드 자식 (child) : 어떤 노드로부터 가지로 연결된 아래쪽 노드 (* 노드는 자식을 여러 개 가질 수 있다.) 부모 (parent) : 어떤 노드에서 가지로 연결된 위쪽 노드 (* 노드는 1개의 부모를 가진다.) 형재 (sibing) : 같은 부모를 가지는 노드 조상 (ancestor) : 어떤 노드에서 가지로 연결된 위쪽의 ..