본문 바로가기

전체 글186

[C/C++] 나동빈 왕실의 나이트, 구현 문제 체스에서 말이 움직이는 방법은 아래와 같다. - 수직으로 두 칸 이동 후 수평으로 한 칸 이동 - 수평으로 두 칸 이동 후 수직으로 한 칸 이동 체스에서 말의 위치가 입력될 때, 체스판 안에서 움직일 수 있는 경우의 수를 구하시오 코드 #include using namespace std; int dx[] = { 1, 1, -1, -1, 2, 2, -2, -2 }; int dy[] = { 2, -2, 2, -2, 1, -1, 1, -1 }; int main() { string position; cin >> position; int x = position[0] - 96, y = position[1] - 48, cnt = 8; for (int i = 0; i < 8; i++) if ((x + dx[i] .. 2023. 2. 15.
[C/C++] 나동빈 시각, 구현 문제 00시 00분 00초에 시를 입력받아 단 한 번이라도 3이 들어가는 경우의 수를 출력한다. 코드 #include using namespace std; int main() { int N, cnt; cin >> N; if (N < 3) cout 2023. 2. 15.
[C/C++] 나동빈 상하좌우, 구현 문제 NxN크기의 공간에서 L(왼쪽), R(오른쪽), U(위), D(아래)를 입력받아 한 칸씩 이동한다. 엔터를 칠때까지 최대 백번 입력받으며 범위 (1~N)에서 벗어날 경우 입력을 무시한다. 첫째줄에 N을 입력받고 그 다음 줄에 띄어쓰기를 기준으로 문자를 하나씩 입력받는다. 엔터시 입력은 종료된다. 다음 줄에 행과 열을 출력한다. 코드 #include using namespace std; int dx[] = { -1,1,0,0 }; int dy[] = { 0,0,-1,1 }; char m[] = { 'L','R','U','D' }; int main() { int N, x = 1, y = 1; cin >> N; char map[100], input; cin.get(input); while (cin.get.. 2023. 2. 15.
스터디 2주차 후기 쓰는거 깜빡해서 지금 올림 코드를 여전히,,, 비효율적으로 짜고있다 그냥 죽고싶은 마음 뿐,,^-^ 짧은 시간 내에효율적인 코드를 완성할때까지 검토해야겠다 완성한 코드도 다시보자 2023. 2. 15.
[C/C++] 백준 13305, Greedy 문제 13305번: 주유소 (acmicpc.net) 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 코드 #include #include using namespace std; int main() { vector dis(100001, 0); long N, temp, price = 1000000000, result = 0; cin >> N; for (int i = 0; i > dis[i]; for (int i = 0; i > temp; if.. 2023. 2. 9.
[C/C++] 백준 1541, Greedy 문제 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 코드 #include #include #include #include using namespace std; int main() { vector cal; vector num; string input; string temp; cin >> input; cal.push_back(0); for (int i = 0; i < input.size() + 1; i++) { if (i == input.s.. 2023. 2. 9.
[C/C++] 백준 11399, Greedy 문제 11399번: ATM (acmicpc.net) 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 코드 #include #include #include using namespace std; int main() { vector time; int N, t, sum = 0; cin >> N; for (int i = 0; i > t; time.push_back(t); } sort(time.begin(), time.end()); for (int i = 0; i < N; i++) sum += time[i] * (N - .. 2023. 2. 9.
[C/C++] 백준 1931, Greedy 문제 1931번: 회의실 배정 (acmicpc.net) 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 코드 #include #include #include using namespace std; int main() { int N, s, e, sum=1; vector schedule; cin >> N; for (int i = 0; i > s >> e; schedule.push_back(make_pair(e, s)); } sort(schedule.begin(), schedule.end()); int i = 0, j = 1; while (j < N) { if (schedule[i].first 2023. 2. 9.
[C/C++] 프로그래머스 스쿨 무지의 먹방라이브, Greedy 문제 코딩테스트 연습 - 무지의 먹방 라이브 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 #include #include using namespace std; int solution(vector food_times, long long k) { int answer=0; vector arr; int check=0; while (check=arr.size()) return -1; else answer=arr[k]+1; return answer; } 풀이 정확성 통과 효율성 탈락 2023. 2. 8.
[C/C++] 나동빈 볼링공 고르기, Greedy 문제 A, B 두 사람이 볼링을 치고 있다. 두 사람은 서로 무게가 다른 볼링공을 고르려고 한다. 볼링공은 총 N개이며 각 볼링공마다 무게가 적혀있고 공의 번호는 1번부터 순서대로 부여된다. 같은 무게의 공이 두 개 있을 수 있지만 서로 다른 공으로 간주한다. 볼링공의 무게는 1부터 M까지의 자연수 형태로 존재한다. 이때 두 사람이 서로 다른 볼링공을 고르는 경우의 수를 구하라. 예를 들어 볼링공이 5개이고 각 볼링공이 번호 순서대로 1, 3, 2, 3, 2라면, 경우의 수는 8이다. 코드 #include #include using namespace std; int main() { int N, M, num, result = 0; int B[11] = { 0 }; scanf_s("%d %d", &N, &M.. 2023. 2. 7.
[C/C++] 나동빈 만들 수 없는 금액, Greedy 문제 동빈이는 N개의 동전을 가지고 있다. N개의 동전의 단위(1,000,000이하의 자연수)를 입력받고, 이 N개의 동전을 조합하여 만들 수 없는 정수 중 최솟값을 구하라. 예를 들어 N=5이고 각 단위가 3, 2, 1, 1, 9일 때 만들 수 없는 정수의 최소 단위는 8이다. (N은 1,000보다 작거나 같은 자연수) 코드 #include #include #include #include using namespace std; int main() { vector coin; int N, num, result=1; cin >> N; for (int i = 0; i > num; coin.push_back(num); } sort(coin.begin(), coin.end()); nu.. 2023. 2. 7.
[데이터베이스] 3. 무결성 [1. 무결성] 1. 무결성 : 데이터의 무효갱신으로부터 데이터를 보호함으로써 정확성, 유효성, 일관성, 안정성을 유지하려는 성질 영역 무결성 - 테이블에 존재하는 필드의 무결성을 보장하기 위한것 - 데이터 타입이나 NULL 허용 여부 등을 정의하여 사용 - 그 속성값은 해당 도메인에서 정의된 값이어야 함 참조 무결성 - 참고 관계에 있는 두 테이블의 데이터가 항상 일관된 값을 가지도록 유지되는 것 - 외래키는 NULL값이거나 외래키가 참조하는 테이블의 기본키에 존재하는 값이어야 함 개체 무결성 - 모든 테이블은 반드시 기본키가 존재해야 함 - 해당 기본키는 반드시 유일값을 가지되 NULL일 수 없음 고유 무결성 - 특정 속성에 대해 고유한 값을 가지도록 조건이 주어진 경우 그 속성값은 모두 고유한 값을.. 2023. 2. 7.
[데이터베이스] 2. 트랜잭션 [1. 트랜잭션] 1. 트랜잭션의 개념 - 업무 처리의 단위 - 하나의 논리적인 작업 단위를 이루는 연산들의 집합 - 데이터베이스의 일관된 상태를 또 다른 일관된 상태로 변환시킴 - 한 번에 수행되어야 할 데이터베이스의 일련의 읽기와 쓰기 연산을 수행하는 단위 - 여러 개의 쿼리를 하나로 묶는 단위 (쿼리=데이터베이스에 접근하는 방법) 2. 커밋과 롤백 - 커밋(Commit) : 하나의 트랜잭션이 성공적으로 처리되었음을 확정하는 명령어 - 롤백(Rollback) : 하나의 트랜잭션으로 처리한 묶음 과정을 취소하는 일 - 커밋과 롤백으로 인해 작업을 그룹화할 수 있으며 데이터의 무결성(integrity)보장 가능 [2. 트랜잭션의 ACID 특징] 1. 원자성(Atomicity) - 한 개의 트랜잭션과 관련.. 2023. 2. 7.
[C/C++] 백준 1439, Greedy 문제 1439번: 뒤집기 (acmicpc.net) 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net 코드 #include #include #include using namespace std; int main() { string S; cin >> S; int zero = 0, one = 0, index = 0; int temp1, temp2; temp1 = stoi(S.substr(index, 1)); if (temp1 == 0) zero++; else one++; while (index < S.length() .. 2023. 2. 6.
[C/C++] 나동빈 곱하기 혹은 더하기, Greedy 문제 각 자리가 0~9로 이루어진 문자열 S가 주어졌을 때, 왼쪽부터 오른쪽으로 하나씩 모든 숫자를 확인하며 숫자 사이에 'x' 혹은 '+' 연산자를 삽입하여 만들 수 있는 가장 큰 수를 도출하라. 단, 덧셈보다 곱셈이 우선시되는 연산의 기본 법칙은 무시하며 왼쪽 연산부터 차례로 계산한다고 가정한다. 예를 들어 02984라는 문자열이 주어지면 가장 큰 수는(((0+2)x9)x8)x4=576이다. 코드 #include #include #include using namespace std; int main() { string S; cin >> S; int temp1, temp2, index = 0; temp1 = stoi(S.substr(index, 1)); while (index < S.length() - .. 2023. 2. 6.
[C/C++] 나동빈 모험가 길드, Greedy 문제 한 마을의 모험가가 N명이고, 각 모험가의 공포도는 X이다. 공포도가 X수준인 모험가는 반드시 X명 이상의 모험가 길드에 참여해야 모험을 떠날 수 있다. 모험을 떠나지 않고 마을에 남아있을 수 있으므로 모든 모험가가 길드에 가입해야 하는 것은 아니다. 공포도는 모험가의 수보다 작거나 같다. 모험을 떠날 수 있는 그룹의 최대 수를 구하라. 예를 들어 5명의 모험가가 있다고 할 때 각각의 공포도가 2 3 1 2 2 라면, 모험을 떠날 수 있는 그룹은 2팀이다. 첫 번째줄에 모험가의 수가 주어지고 두 번째 줄에 공포도가 주어진다. 코드 #include #include #include #include using namespace std; int main() { vector X; int N, x, num =.. 2023. 2. 6.
스터디 1주차 후기 준희가 죽어도 천원은 내고싶지 않았는지 지각을 하지 않았다 데베는 난 해본적이 있긴 한데 그래서 그런지 공부량이 적었던 것 같기도 하고,, sqld 연습문제라도 풀어봐야 하나 고민이다. 실습을 해보고 싶은데 뭐 프로젝트를 해봐야 알지 ㅜ ㅜ 코딩테스트는 코드를 같이 리뷰해봤다 사실 전날 내 코드를 다시 보고 개 그지같이 짜놨길래 전면 수정을 거쳤다. 코드 리뷰 할때도 여러번 수정했다. 난 변수를 많이 쓰는 타입인 것 같다. degenerate case도 과하게 생각하는 느낌이다. 앞으로는 더 가볍게 짜보도록 노력하겠다 그리고 코드 리뷰 후에 전체 공개를 하든가 해야지 시팔 쪽팔려서 어디 내놓기가 그렇다 아흑흑 스터디를 한 번 해보니 예상보다 오래 걸렸다 근데 한 주 동안 공부량이 그렇게 많지는 않아서 코.. 2023. 2. 6.
[C++] STL 1차원 vector 사용법 1. STL vector (1) vector를 사용하기 위해서는 헤더파일을 추가해야 한다. : #include (2) vector의 선언은 다음과 같다 : vector 벡터명; #include #include using namespace std; int main(){ vector V; } 2. 벡터 값 할당 (1) 미리 벡터의 크기를 정한 후 값을 0으로 설정하는 방식 : vector V(크기) (2) 미리 벡터의 크기와 그 값을 설정하는 방식 : vector V(크기, 값) (3) 벡터의 크기만 설정 후 fill을 통해 (4) 벡터의 앞부분부터 값을 직접 입력하는 방식 : 벡터명.push_back(값) #include #include using namespace std; int main() { vect.. 2023. 2. 2.
[C/C++] 나동빈 1이 될 때까지, Greedy 문제 어떤 수 N이 1이 될 때까지 다음의 두 과정을 반복적으로 선택하여 수행하려 한다. 1. N-1 2. N÷K (단, N이 K로 나누어 떨어질 때) 예를 들어, N이 17일 경우 1번, 2번, 2번 차례로 수행하면 N은 1이 되며, 총 연산횟수는 3이다. N과 K가 주어질 때 연산 횟수를 최소화하여 N을 1로 만드는 프로그램을 작성하라. 첫째 줄에 N(1≤N≤100,000)과 K(1≤K≤100,000)가 주어지며 N은 항상 K보다 크거나 같다. 코드 #include #include using namespace std; int main() { int N, K, num = 0; cin >> N >> K; if (K == 1) { cout 2023. 2. 2.
[C/C++] 나동빈 숫자 카드 게임, Greedy 문제 숫자 카드 게임은 세로N개, 가로M개 형태로 놓인 카드들 사이에서 가장 큰 수가 적힌 카드를 뽑는 게임이다. 이 게임의 규칙은 아래와 같다 1. 먼저 뽑고자 하는 카드가 있는 행을 선택한다. 2. 그 다음 그 행에 포함된 카드들 중에서 가장 낮은 수가 적힌 카드를 뽑는다. 따라서, 전체 행렬에서 큰 수가 아닌 하나의 행에서 가장 낮은 수를 고려하여 뽑아야 한다. 예를들어 카드가 아래와 같이 나열되어 있다고 하자. 3 1 2 4 1 4 2 2 2 전체 행렬에서 가장 큰 수는 4지만, 4가 포함된 행의 가장 낮은 수는 1이므로 최종 수는 1이 된다. 첫 번째 행의 최종 숫자도 마찬가지이다. 마지막 행의 가장 큰 수는 2이지만, 가장 낮은 수도 2이므로 마지막 행을 선택해야 2가 도출되어 이길 수 있다... 2023. 2. 2.
[C/C++] 나동빈 가장 큰 수 만들기, Greedy 문제 다양한 숫자들로 구성된 배열이 있을 때, 주어진 수를 M번 더하여 가장 큰 수를 만들되, 해당 숫자의 인덱스에 해당하는 수가 연속 K번 초과하여 더해질 수 없다. 예시1) N={2, 4, 5, 4, 6}, M=8, K=3 정답: 6+6+6+5+6+6+6+5=46 예시2) N={3, 4, 3, 4, 3}, M=7, K=2 정답: 4+4+4+4+4+4+4=28 첫 번째 줄에 배열의 크기 N(2≤N≤1,000), M(1≤M≤10,000), K(1≤K≤10,000)의 자연수가 주어지며 각 자연수는 공백으로 구분한다. 두 번째 줄에 자연수인 배열의 원소가 주어지며 각 원소는 공백으로 구분한다. K는 항상 M보다 작거나 같아야 한다. 코드 #include #include #include #include #in.. 2023. 2. 2.
[C/C++] 나동빈 거스름돈, Greedy 문제 거슬러줘야 할 돈이 N원일 때, 거스름돈으로 사용할 동전 500원, 100원, 50원 그리고 10원을 조합한 동전의 최소 개수를 구하라. 단, N은 항상 10의 배수이다. 코드 #include #include using namespace std; int coin[4] = { 500,100,50,10 }; int main() { int N, sum = 0; cin >> N; for (int i = 0; i < 4; i++) { sum += N / coin[i]; N %= coin[i]; } cout 2023. 2. 2.
[MySQL] 데이터 타입 [1. 숫자 타입] 1. 정수 타입 용량(byte) 최소~최댓값 (부호 없음) 최소~최댓값 (부호 있음) TINYINT 1 0 ~ 127 -128 ~ 255 SMALLINT 2 0 ~ 32,767 -32,768 ~ 65,535 MEDIUMINT 3 0 ~ 8,388,607 -8,388,608 ~ 16,777,215 INT 4 0 ~ 2,147,483,647 -2,147,488,648 ~ 4,294,967,295 BIGINT 8 0 ~ 2^(63)-1 -2^(63) ~ 2^(64) 2. 실수 타입 용량(byte) 최소~최댓값 최소~최댓값 DECIMAL(전체자릿수, 소수자릿수) 가변 DECIMAL(5) : -99,999 ~ 99,999 DECIAML(5,1) : -9,999.9 ~ 9,999.9 DECIMA.. 2023. 2. 1.
[데이터베이스] 1.데이터베이스 기본 [1. 데이터베이스와 DBMS] 1. 데이터베이스 : 일정한 규칙 또는 규약을 통해 구조화되어 저장되는 데이터의 모음 - 데이터베이스의 논리적 구조 : 사용자 관점에서 본 데이터의 개념적 구조 - 데이터베이스의 물리적 구조 : 저장 관점에서 본 데이터의 물리적 배치, 데이터의 실제 구조 2. DBMS : 데이터베이스를 사용할 수 있도록 관리하는 시스템 - DBMS마다 정의된 쿼리 언어를 통해 삽입, 삭제, 수정, 조회 등을 수행 - DBMS는 데이터의 종속성과 중복성 문제를 해결할 수 있음 3. 데이터 독립성 - 논리적 데이터 독립성 : 응용 프로그램에 영향을 주지 않고 데이터베이스의 논리적 구조를 변경시킬 수 있는 능력 - 물리적 데이터 독립성 : 데이터베이스의 논리적 구조에 영향을 주지 않고 데이터의.. 2023. 2. 1.