본문 바로가기

전체 글186

[C/C++] 백준 10825, 정렬 문제 10825번: 국영수 (acmicpc.net) 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net 코드 #include using namespace std; struct student { string name; int k; int e; int m; }; bool cmp(struct student A, struct student B) { if (A.k == B.k) { if (A.e == B.e) { if (A.m == B.m) return A.name < B.name; return A.m.. 2023. 3. 8.
[네트워크] 3. 네트워크 기기 보호되어 있는 글 입니다. 2023. 3. 7.
스터디 5주차 회고 힘들었다~~~ sqld 준비도 힘들구 걍 다 힘들어 다다다다다다다다ㅏ따ㅏ다다다다다다ㅏ 그래도 정렬 문제는 쉬웠다 [CS 스터디] https://sangddongvoid.tistory.com/64 https://sangddongvoid.tistory.com/65 https://sangddongvoid.tistory.com/72 [코딩테스트] https://sangddongvoid.tistory.com/67 https://sangddongvoid.tistory.com/68 https://sangddongvoid.tistory.com/69 https://sangddongvoid.tistory.com/70 2023. 3. 3.
[네트워크] TCP/IP 4계층 모델 보호되어 있는 글 입니다. 2023. 3. 3.
[C/C++] 나동빈 두 배열의 원소 교체, 정렬 문제 크기가 N으로 같은 두 배열 A, B가 있다. 이 두 배열의 원소를 서로 최대 K번 바꿀 수 있는데, 배열A의 원소이 총합이 최대가 되도록 원소를 교환한 후 그 총합을 출력하라. 첫 번째 줄에 N과 K가 주어지고 두 번째 줄에 배열A의 원소가 주어지며 세 번째 줄에 배열 B의 원소가 입력된다. (1≤N≤100,000, 0≤K≤N) 코드 #include #include #include using namespace std; int main() { int N, K, sum = 0, temp; cin >> N >> K; vector A; vector B; for (int i = 0; i > temp; A.push_back(temp); } for (int i = 0; i < N.. 2023. 3. 1.
[C/C++] 나동빈 성적이 낮은 학생 순서대로 출력하기, 정렬 문제 첫째 줄에 학생의 수 N이 입력된다. 두 번째 줄부터 N+1번째 줄까지 학생의 이름을 나타내는 문자열 A와 학생의 성적을 나타내는 정수 B가 입력된다. 문자열A의 길이와 학생의 성적은 100이하의 자연수이다. 성적이 낮은 순서대로 학생의 이름을 출력하라 코드 #include #include #include using namespace std; int main() { int N, b; string a; vector score; cin >> N; for (int i = 0; i > a >> b; score.push_back({ b, a }); } sort(score.begin(), score.end()); for (int i = 0; i < N; i++) cout 2023. 3. 1.
[C/C++] 나동빈 위에서 아래로, 정렬 문제 첫째줄에 수열에 속한 수의 갯수 N이 주어지며 둘째줄부터 N+1번째 줄까지 수가 주어진다. 이 수를 내림차순으로 정렬하는 프로그램을 만드시오 코드 #include #include #include using namespace std; int main() { int N, temp; vector arr; cin >> N; for (int i = 0; i > temp; arr.push_back(temp); } reverse(arr.begin(), arr.end()); for (int i = 0; i < N; i++) cout 2023. 3. 1.
[C/C++] 정렬 1. 선택정렬 (1) 선택정렬이란 : 전체의 데이터를 한번씩 확인하며 그 데이터를 적절한 위치로 이동시키는 것을 의미한다. (2) 오름차순으로 정렬하는 경우 : N개의 데이터가 입력될 때 n번째로 작은 데이터를 n번째 위치로 옮기는 과정을 정렬이 완료될 때까지 반복한다. 한 데이터를 옮길 때마다 나머지 N-n-1개의 데이터와 비교하게 된다. (3) 시간복잡도 : N개의 데이터에 대해 실행되는데 그 연산 횟수가 N+(N-1)+(N-2)+...+2이므로 N(N+1)=N²+N이다. 따라서 시간복잡도는 O(N²)이다. #include using namespace std; int main() { int arr[10] = { 7,5,2,4,1,3,6,9,0,8 }; for (int i = 0; i < 10; i++.. 2023. 3. 1.
[C++] STL 2차원 vector 사용법 1. 2차원 벡터 선언 (1) vector를 사용하기 위해서는 헤더파일을 추가해야 한다. : #include (2) vector의 선언은 다음과 같다 : vector 벡터명; (3) vector의 행열 크기를 결정하며 선언하기 : vector 벡터명(행 길이, vector(열 길이)); //이때, 값은 0 #include #include #include using namespace std; int main() { vector V1; vector V2(3, vector(5)); } 2. 벡터 값 할당 (1) 먼저 1차원 벡터를 선언한 후 2차원 벡터에 (행마다) 삽입하기 : 2차원벡터명.push_back(1차원벡터명); (2) 이미 사이즈가 정해진 2차원 벡터에 값 채우기 : fill(벡터명[행].시작부분.. 2023. 2. 28.
[네트워크] 2. 네트워크 성능 분석 명령어 보호되어 있는 글 입니다. 2023. 2. 28.
[네트워크] 1. 네트워크 기초 보호되어 있는 글 입니다. 2023. 2. 28.
스터디 4주차 https://sangddongvoid.tistory.com/59 https://sangddongvoid.tistory.com/60 https://sangddongvoid.tistory.com/61 https://sangddongvoid.tistory.com/62 2023. 2. 26.
[C/C++] 프로그래머스스쿨 외벽 점검, 구현 #include using namespace std; int solution(int n, vector weak, vector dist) { // 길이를 2배로 늘려서 '원형'을 일자 형태로 변경 int length = weak.size(); for (int i = 0; i < length; i++) { weak.push_back(weak[i] + n); } // 투입할 친구 수의 최솟값을 찾아야 하므로 len(dist) + 1로 초기화 int answer = dist.size() + 1; // 0부터 length - 1까지의 위치를 각각 시작점으로 설정 for (int start = 0; start < length; start++) { // 친구를 나열하는 모든 경우 각각에 대하여 확인 do { int .. 2023. 2. 26.
[C/C++] 백준 치킨 배달, 구현 문제 15686번: 치킨 배달 (acmicpc.net) 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 코드 #include using namespace std; int n, m; int arr[50][50]; vector chicken; vector house; // 치킨 거리의 합을 계산하는 함수 int getSum(vector candidates) { int result = 0; // 모든 집에 대하여 for (int i = 0; i < house.size(); i++) { int h.. 2023. 2. 26.
[C/C++] 프로그래머스 스쿨 기둥과 보, 구현 #include #include #include using namespace std; bool possible(vector answer) { for (int i = 0; i < answer.size(); i++) { int x = answer[i][0]; int y = answer[i][1]; int stuff = answer[i][2]; if (stuff == 0) { //기둥 설치시 bool check = false; if (y == 0) check = true; for (int j = 0; j < answer.size(); j++) { if (x - 1 == answer[j][0] && y == answer[j][1] && 1 == answer[j][2]) check = true; if (x == .. 2023. 2. 26.
[C/C++] 프로그래머스스쿨 자물쇠와 열쇠, 구현 문제 코딩테스트 연습 - 자물쇠와 열쇠 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 #include #include using namespace std; //키 회전 vector rotation(vector key) { int n = key.size();//행 길이 int m = key[0].size();//열 길이 vector result(n, vector(m));//열이 m, 행이 n인 2차원 벡터 for (int i = 0; i < n; i++){ for (int j = 0; j < m.. 2023. 2. 26.
스터디 3주차 CS https://sangddongvoid.tistory.com/m/53 [데이터베이스] 4. 인덱스 [1. 인덱스의 기능] - 검색 연산을 빠르게 수행하기 위해 데이터베이스 레코드의 정보를 구성하는 데이터 구조 - 인덱스를 이용하면 전체 데이터를 검색하지 않고 원하는 정보를 빠르게 검색할 sangddongvoid.tistory.com https://sangddongvoid.tistory.com/m/54 [데이터베이스] 5. 조인 [1. 조인] 1. 조인 : 두 개 이상의 릴레이션(테이블)에서 조인 조건에 맞는 두 릴레이션의 투플을 조합하여 만들어지는 투플로 구성된 새로운 릴레이션을 생성하는 연산 - 조건을 설정하여 원하는 sangddongvoid.tistory.com 코테 https://sangddo.. 2023. 2. 19.
[C/C++] 백준 3190, 구현 3190번: 뱀 (acmicpc.net) 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 풀이 #include #include #include #include using namespace std; int dr[4] = { -1,0,1,0 }; int dc[4] = { 0,1,0,-1 }; int main() { int map[100][100] = { 0, };//이동 가능한 곳을 0으로 저장 vector dir; int N, K, L, X, temp1, temp2; char C; cin >> N; cin >> K; .. 2023. 2. 18.
[데이터베이스] 5. 조인 [1. 조인] 1. 조인 : 두 개 이상의 릴레이션(테이블)에서 조인 조건에 맞는 두 릴레이션의 투플을 조합하여 만들어지는 투플로 구성된 새로운 릴레이션을 생성하는 연산 - 조건을 설정하여 원하는 데이터만 볼 수 있음 2. 조인의 종류 (1) 내부 조인(∩, inner join) : 왼쪽 테이블과 오른쪽 테이블의 두 행이 모두 일치하는 행이 있는 부분만 표기 (2) 왼쪽 조인(left outer join) : 왼쪽 테이블의 모든 행이 결과 테이블에 표기됨 (3) 오른쪽 조인(right outer join) : 오른쪽 테이블의 모든 행이 결과 테이블에 표기됨 (4) 합집합 조인(full outer join) : 두 개의 테이블을 기반으로 (조건에 만족하지 않더라도) 모든 행이 표기됨 Ex. 학생 명단 테이.. 2023. 2. 17.
[데이터베이스] 4. 인덱스 [1. 인덱스의 기능] - 검색 연산을 빠르게 수행하기 위해 데이터베이스 레코드의 정보를 구성하는 데이터 구조 - 인덱스를 이용하면 전체 데이터를 검색하지 않고 원하는 정보를 빠르게 검색할 수 있으며, 레코드 수가 증가하더라도 검색 속도에 큰 변화가 없음 - 인덱스는 인덱스를 생상한 칼럼 값으로 정렬되어 있어 테이블 내에 실제 값들이 저장된 위치를 갖고 있음 - 접근 경로를 단축함으로써 데이터의 탐색 속도 향상 [2. B-tree] 1. 인덱스는 보통 B-트리라는 자료구조로 이루어져 있음 - 루트 노드 - 브랜치 노드 - 리프 노드 - 트리 탐색은 맨 위 루트 노드부터 시작되어 브랜치 노드를 거쳐 리프 노드로 내려옴 - '57보다 같거나 클때까지 2023. 2. 17.
[C/C++] 프로그래머스스쿨 문자열압축, 구현 코딩테스트 연습 - 문자열 압축 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 #include using namespace std; int solution(string s) { string cnt_s; int sum, check, cnt, a, size = 1, answer = s.length(); while (size 1) { cnt_s = to_string(cnt); sum += cnt_s.size(); } cnt = 1; } } if (cnt > 1) { cnt_s = to_string(.. 2023. 2. 16.
[C/C++] 나동빈 문자열 재정렬, 구현 문제 알파벳 대문자와 숫자(0~9)로만 구성된 문자열이 입력된다. 모든 알파벳을 오름차순으로 정렬하여 이어 출력한 뒤 모든 숫자를 더하여 출력한다. 예를 들어 K1KA5CB7이 주어지면 ABCKKL13을 출력한다. 코드 #include #include #include #include using namespace std; int main() { vector alphabet_num; string N; char alphabet; cin >> N; int num, sum = 0; for (int i = 0; i 64) { num = N[i]; alphabet_num.push_back(num); } else sum += N[i] - 48; } sort(al.. 2023. 2. 15.
[C/C++] 백준 18406, 구현 18406번: 럭키 스트레이트 (acmicpc.net) 18406번: 럭키 스트레이트 첫째 줄에 점수 N이 정수로 주어진다. (10 ≤ N ≤ 99,999,999) 단, 점수 N의 자릿수는 항상 짝수 형태로만 주어진다. www.acmicpc.net 코드 #include #include using namespace std; int main() { string N; cin >> N; int result = 0; for (int i = 0; i < N.length() / 2; i++) result += (N[i] - N[i + N.length() / 2]); if (result == 0) cout 2023. 2. 15.
[C/C++] 나동빈 게임 개발, 구현 문제 크기가 세로 N 가로 M인 지도가 있다. 캐릭터가 현재 바라보는 방향에서 왼쪽부터 차례로 갈 곳을 정한다. 육지면 이동할 수 있고 바다면 이동할 수 없다. 이동할 수 없을 경우 왼쪽 방향으로 90도 돌아 다시 왼쪽부터 이동할 수 있는지 확인한다. 사방이 막혀있는 경우, 바라보는 방향 그대로 한 칸 뒤가 이미 이동한 칸이라면 다시 돌아간다. 그렇지 않으면 이동을 중단한다. 입력시 0=육지, 1=바다이며 캐릭터가 바라보는 방향은 0=북쪽, 1=동쪽, 2=남쪽, 3=서쪽이다. N과 M은 3과 50 사이이다. 코드 #include using namespace std; int map[50][50]; int hr[] = { 0,-1,0,1 }; int hc[] = { -1,0,1,0 }; int br[] = .. 2023. 2. 15.