본문 바로가기

전체 글197

[Java] 1차원 리스트 List 목차 리스트란 선언 데이터 입력 데이터 삭제 데이터 및 인덱스 조회, 크기 확인 정렬 (오름차순, 내림차순) 리스트 출력 [1. List란] - 리스트는 중복을 허용하면서 저장순서를 유지하는 컬렉션(Collection)을 구현하는데 사용된다. - ArrayList : List 인터페이스를 구현하는 컬랙션 클래스 - 인덱스는 0부터 시작 [2. List의 선언] 1. 빈 리스트 선언 List list1 = new ArrayList(); List list2 = new ArrayList(); List list3 = Collections.EMPTY_LIST; 2. 물리적 크기가 정해진 빈 리스트 선언 List list = new ArrayList(10); 3. 선언과 동시에 데이터 입력 List list = n.. 2023. 4. 6.
[Java] class 클래스 [1. Class] 1. class의 정의 : 객체를 정의하기 위한 설계도 또는 틀 - 틀이 한 번 설정되면 여러개의 객체에 대한 속성과 기능을 쉽게 정의할 수 있음 2. 클래스의 장점 - 코드의 재사용성이 높음 - 코드의 관리가 용이 3. 클래스의 기능 (1) 속성 정의 : 클래스(Ex.학생명단 )별로 생성되는 인스턴스(Ex.학생)의 속성을 쉽게 정의할 수 있다. Class Student student1 student2 student3 String name; String major; int studentNum; char grade; boolean attendence; Student s1 = new Student(); s1.name = 상희; s1.major = 경제금융학부; s1.studentNum =.. 2023. 4. 3.
스터디 7주차 CS https://sangddongvoid.tistory.com/81 코테 https://sangddongvoid.tistory.com/82 https://sangddongvoid.tistory.com/83 회고 2023. 3. 26.
[C/C++] 나동빈 미로 탈출, BFS 보호되어 있는 글 입니다. 2023. 3. 26.
[C/C++] 나동빈 음료수 얼려먹기, DFS 보호되어 있는 글 입니다. 2023. 3. 26.
[네트워크] 4. IP주소 [1. ARP] 1. ARP(Address Resolution Protocol) - IP주소로부터 MAC주소의 다리 역할을 하는 프로토콜 - 논리적 주소와 물리적 주소를 변환시키는 역할 2. ARP & RARP (1) ARP : IP주소(논리적, 가상 주소) → MAC주소(물리적, 실제 주소) (2) RARP : MAC주소(물리적, 실제 주소) → IP주소(논리적, 가상 주소) 3. ARP주소를 찾는 과정 장치 A에서 ARP Request broadcast를 통해 찾고자 하는 IP주소에 해당하는 MAC주소를 탐색하면, 해당 주소와 일치하는 장치가 ARP Reply unicast를 통해 MAC주소를 반환하는 과정을 거쳐 IP주소에 맞는 MAC주소를 찾는다. - broadcast : 송신 호스트가 전송한 데.. 2023. 3. 26.
[C/C++] DFS, BFS 1. DFS(Depth First Search, 깊이 우선 탐색) (1) 깊이 우선 탐색이란? : 여러 개의 노드(node)가 간선(edge)으로 연결되어 있는 그래프(graph)에서 탐색을 진행하고자 할 때, 처음 탐색을 시작할 노드와 가장 가까운 노드를 방문한 후, 새로 방문한 노드와 가장 가까운 노드로 깊이 들어가는 방식이다. 한 노드에서 이동할 수 있는 여러 가지 노드를 한번씩 방문하는 것이 아니라, 가장 가까운 노드가 있다면 그 노드로 이동한 후 또 그 노드와 가장 가까운 노드로 또 이동하는 과정을 반복하는 것이다. 한 번 방문한 노드는 방문 표시를 하며 후에 거쳐갈 수는 있어도 다시 방문하지는 않는다. 탐색 시작 위치와 방향이 정해지지 않았다면 일반적으로 오름차순으로 이동하면 된다. (2) 기.. 2023. 3. 24.
[C/C++] 백준 18310, 정렬 문제 18310번: 안테나 (acmicpc.net) 18310번: 안테나 첫째 줄에 집의 수 N이 자연수로 주어진다. (1≤N≤200,000) 둘째 줄에 N채의 집에 위치가 공백을 기준으로 구분되어 1이상 100,000이하의 자연수로 주어진다. www.acmicpc.net 코드 #include #include using namespace std; int main() { int input[200000]; int N; cin >> N; for (int i = 0; i >input[i]; sort(input, input+N); cout 2023. 3. 9.
스터디 6주차 [CS 스터디] https://sangddongvoid.tistory.com/74 [코딩테스트] https://sangddongvoid.tistory.com/75 https://sangddongvoid.tistory.com/76 https://sangddongvoid.tistory.com/77 [C/C++] 백준 18310, 정렬 (tistory.com) [회고] struct를 오랜만에 쓰는 것 같다 복습한 느낌? 새 글로 정리해서 올리려고 한다 (class도 하려고 한다) 그리고 시간초과가 나오는 이유를 알게 되었다 코드 몇개만 추가하고 수정하니 바로 답이 나왔다 sqld 시험 끝나자마자 바로 자바 공부를 시작하려고 한다 후,, 갈길이 멀다 그리고 준희는 내 스터디를 뒷전으로 미뤗다 당당하게 와서 하나.. 2023. 3. 9.
[C/C++] 백준 1715, 정렬 문제 1715번: 카드 정렬하기 (acmicpc.net) 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 코드 #include #include using namespace std; int main() { priority_queue card; int N, result = 0; cin >> N; for (int i = 0; i > t; card.push(-t); } while (card.size() > 1) { int first = -card.top(); .. 2023. 3. 9.
[C/C++] 프로그래머스스쿨 실패율, 정렬 문제 코딩테스트 연습 - 실패율 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 #include #include #include using namespace std; struct num{ float users; float fail; int stage; }; bool cmp(struct num A, struct num B){ if (A.fail==B.fail) return A.stageB.fail; } vector solution(int N, vector stages) { vector answer.. 2023. 3. 8.
[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.