전체 글 115

[C언어] 백준 9471 : 피사노 주기

백준 9471 : 피사노 주기 문제 링크 www.acmicpc.net/problem/9471 9471번: 피사노 주기 첫째 줄에 테스트 케이스의 개수 P (1 ≤ P ≤ 1000)가 주어진다. 각 테스트 케이스는 N과 M으로 이루어져 있다. N은 테스트 케이스의 번호이고, M은 문제에서 설명한 m이다. (2 ≤ M ≤ 1,000,000) www.acmicpc.net 문제 내용 1960년, IBM의 직원 Donald Wall은 피보나치수열을 m으로 나눈 나머지가 주기를 이룬다는 것을 증명했다. 예를 들어, 피보나치 수열의 처음 10개를 11로 나눈 예는 다음과 같다. 나머지를 이용해서 만든 수열은 주기가 나타날 수 있다. k(m)을 반복하는 부분 수열의 길이라고 했을 때, k(11) = 10 임을 알 수 ..

백준 Baekjoon 2020.10.09

[C언어] 백준 11047 : 동전 0

백준 11047 : 동전 0 문제 링크 www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 문제 내용 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. (단, 동전은 1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 ..

백준 Baekjoon 2020.09.29

[C언어] 백준 16926 : 배열 돌리기 1

백준 16926 : 배열 돌리기 1 문제 링크 www.acmicpc.net/problem/16926 16926번: 배열 돌리기 1 크기가 N×M인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. A[1][1] ← A[1][2] ← A[1][3] ← A[1][4] ← A[1][5] ↓ ↑ A[2][1] A[2][2] ← A[2][3] ← A[2][4] A[2][5] �� www.acmicpc.net 문제 내용 크기가 NxM인 배열이 있을 때, 배열을 돌려보려고 한다. 배열은 다음과 같이 반시계 방향으로 돌려야 한다. Idea 처음엔 나름의 규칙을 찾아 연산하려 했으나... 복잡하여 그냥 하나씩 옮겼다. 아래 코드의 규칙은 다음과 같다. 가장 바깥쪽부터 회전시킨다..

백준 Baekjoon 2020.09.29

[C++] 백준 2346 : 풍선 터뜨리기

백준 2346 : 풍선 터뜨리기 문제 링크 www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 첫째 줄에 자연수 N(1≤N≤1,000)이 주어진다. 다음 줄에는 차례로 각 풍선 안의 종이에 적혀 있는 수가 주어진다. 편의상 0은 적혀있지 않다고 가정하자. www.acmicpc.net 문제 내용 N개의 풍선이 있다. 각 풍선 안에는 -N부터 N까지의 수가 적혀있는 종이가 들어있다. 이 풍선들을 다음과 같은 규칙으로 터뜨린다. 제일 처음에 있는 1번풍선을 터뜨린다. 풍선 안에 있는 종이를 꺼내어 그 종이에 적혀있는 값만큼 이동하여 다음 풍선을 터뜨린다. 양수가 적혀있을 경우에는 오른쪽으로, 음수가 적혀있을 때는 왼쪽으로 이동한다. 단, 풍선은 원형으로 놓아져있다고 가정한다. ex)..

백준 Baekjoon 2020.09.25

[C언어] 백준 5585 : 거스름돈

백준 5585 : 거스름돈 문제 링크 www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사� www.acmicpc.net 문제 내용 잔돈으로 500엔, 100엔, 10엔, 5엔, 1엔이 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 잡화점에서 물건을 사고 1000엔을 냈을 때 받을 잔돈의 개수를 구하는 프로그램을 작성하시오. 단, 지불한 돈은 1 이상 1000 미만의 정수이다. Idea 사용 알고리즘 : Greedy Algorithm ( 탐욕 알고리즘 ) 제일 ..

백준 Baekjoon 2020.09.22

[알고리즘] 탐욕 알고리즘 Greedy

탐욕 알고리즘 Greedy Algorithm 탐욕 알고리즘이란? 최적화 문제를 해결하는 알고리즘으로 근시안적인 방법이다. 그 순간이 최적이라고 생각되는 것을 선택해 나가는 방식이다. 각 결정은 지역(local)적으로는 최적이나, 전체(global)적으로 봤을 때 최적이라는 보장은 없다. 대표 문제 동전 문제 배낭 문제 활동 선택 문제(회의실 배정) ... 동전 문제 Q. 어떻게 거스름돈의 개수를 최소한으로 줄일 수 있을까? [접근방법] 그 당시 거슬러줄 수 있는 가장 큰 액수의 동전을 선택한다. coin = 0 이면 종료 coin > 0 이면, coin보다 작거나 같은 동전 중 가장 큰 동전(m)을 선택 coin = coin - m 1~3 반복 *그러나 이 방법은 모든 coin system에서 동작한다는..

[C++] 백준 1316 : 그룹 단어 체커

백준 1316 : 그룹 단어 체커 문제 링크 www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때� www.acmicpc.net 문제 내용 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다. 단어 N개를 입..

백준 Baekjoon 2020.09.20

[C언어] 백준 2675 : 문자열 반복

백준 2675 : 문자열 반복 문제 링크 www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 문제 내용 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 출력하는 프로그램을 작성하시오. 문자열의 길이는 최소 1이며, 20글자를 넘지 않는다. ex) 입력 : 3 ABC 출력 : AAABBBCCC Idea 중첩 for문을 사용하여 형식에 맞춰 출력할 수 있도록 한다. Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18..

백준 Baekjoon 2020.09.18

[DB] DML, DDL, DCL, TCL 개념

DML, DDL, DCL, TCL 개념 DML 데이터 조작어 Data Manipulation Language 데이터베이스에 들어있는 데이터를 조회하거나 검색하기 위한 명령어 SELECT : 데이터베이스에 들어 있는 데이터를 조회하기 위함 INSERT : 테이블에 데이터를 삽입 UPDATE : 기존 데이터를 수정 DELETE : 데이터 삭제 DDL 데이터 정의어 Data Definition Language 테이블과 같은 데이터 구조를 정의하는 데 사용되는 명령어들로 그러한 구조를 생성하거나 변경하거나 삭제하거나 이름을 바꾸는, 데이터 구조와 관련된 명령어들 CREATE : 테이블 생성 ALTER : 테이블 구조 수정 DROP : 테이블 삭제 RENAME : 테이블 이름 변경 DCL 데이터 제어어 Data ..

DATABASE 2020.09.17