백준 | 정렬 섹션 - 10814번. 나이순 정렬
10814번. 나이순 정렬 문제 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름이 공백으로 구분되어 주어진다. 나이는 1보다 크거나 같으며, 200보다 작거나 같은 정수이고, 이름은 알파벳 대소문자로 이루어져 있고, 길이가 100보다 작거나 같은 문자열이다. 입력은 가입한 순서로 주어진다. 출력 첫째 줄부터 총 N개의 줄에 걸쳐 온라인 저지 회원을 나이 순, 나이가 같으면 가입한 순으로 한 줄에 한 명씩 나이와 이름을 공백..
- 코딩 테스트 [준비]/[문풀] Baekjoon_백준 문풀_조지기
- · 2023. 3. 16.
백준 | 정렬 섹션 - 11650번. 좌표 정렬하기
23.03.16 문풀 11650번. 좌표 정렬하기 | 객체 정렬 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. 내 코드 각 좌표(x,y) 를 담을 Point(x,y) 클래스를 정의한다. 이때, 이 Point클래스는 implements Comapable 를 구현한 클래스여야 한다. 내부적..
- 코딩 테스트 [준비]/[문풀] Baekjoon_백준 문풀_조지기
- · 2023. 3. 16.
Sorting and Searching -(2)
Sorting and Searching -(2) 6-3. 삽입 정렬 | 복습 import java.util.Scanner; /*6-3. 삽입 정렬| 복습*/ public class Main1 { public int[] solution(int n, int[] arr) { for(int i = 1; i=0; j--) { if(arr[j] > tmp) { //S집합 값을 U집합 쪽으로 밀기 arr[j+1] = arr[j]; }else break; //삽입 지점 찾았으면 break } //멈춘 지점에서 tmp 값도 세팅 arr[j+1] = tmp; } return arr; } public static void main(String[] args) { // TODO Auto-generated method stub ..
- 알고리즘 이론 [개념]/[개념] 코테 알고리즘 공부 - 시즌 1
- · 2023. 3. 16.
백준 | 정렬 섹션 - 23881번. 선택 정렬 1
23881번. 선택 정렬 1 | 재시도 문제 오늘도 서준이는 선택 정렬 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. N개의 서로 다른 양의 정수가 저장된 배열 A가 있다. 선택 정렬로 배열 A를 오름차순 정렬할 경우 K 번째 교환되는 수를 구해서 우리 서준이를 도와주자. 크기가 N인 배열에 대한 선택 정렬 의사 코드는 다음과 같다. selection_sort(A[1..N]) { # A[1..N]을 오름차순 정렬한다. for last
- 코딩 테스트 [준비]/[문풀] Baekjoon_백준 문풀_조지기
- · 2023. 3. 14.
백준 | 정렬 섹션 - 2693번. N번째 큰 수
2693번. N번째 큰 수 문제 배열 A가 주어졌을 때, N번째 큰 값을 출력하는 프로그램을 작성하시오. 배열 A의 크기는 항상 10이고, 자연수만 가지고 있다. N은 항상 3이다. 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000보다 작거나 같은 자연수이다. 출력 각 테스트 케이스에 대해 한 줄에 하나씩 배열 A에서 3번째 큰 값을 출력한다. 내 코드 import java.util.Arrays; import java.util.Scanner; /* 백준. 2693번. N번째 큰 수 * */ public class Main { //솔루션..
- 코딩 테스트 [준비]/[문풀] Baekjoon_백준 문풀_조지기
- · 2023. 3. 14.
백준 | 정렬 섹션 - 10817번. 세 수 문풀
10817번. 세 수 문제 세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100) 출력 두 번째로 큰 정수를 출력한다. 내 코드 Arrays.sort() 사용하여 정렬했다. import java.util.Arrays; import java.util.Scanner; /* 10817번. 세 수 * */ public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner kb = new Scanner(System.in); int[] arr = new..
- 코딩 테스트 [준비]/[문풀] Baekjoon_백준 문풀_조지기
- · 2023. 3. 14.
Sorting and Searching -(1)
📍 섹션6. Sorting and Searching (정렬, 이분 검색과 결정 알고리즘) Sorting and Searching -(1) ⬛ 선택 정렬 | Selection Sorting 대상에서 가장 큰 or 작은 데이터 찾아 선택을 반복하며 정렬하는 방식 전체 원소들 중, 기준 위치(i)에 맞는 원소를, 남은 원소들 중에서 (j) 찾아 선택 후, 자리 맞교환 시간 복잡도 O(n2) 비효율적이라 사용 小 i번째 단계에서 i번째 자리 확정 n개 원소에 대해 n-1번 반복함 6-1. 선택 정렬 import java.util.ArrayList; import java.util.Scanner; /* 6-1. 선택 정렬 * N개이 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. * 정렬하는 ..
- 알고리즘 이론 [개념]/[개념] 코테 알고리즘 공부 - 시즌 1
- · 2023. 3. 14.
Stack, Queue - (2)
Stack, Queue - (2) 5-5. 쇠막대기 | 스택 사용 1) 여는 괄호는 일단 push 2) 닫는 괄호 만나면 구분 a) 레이저인지: 바로 앞이 ( 여는 괄호일 때 stack.size() 만큼 answer에 누적 : 레이저 왼쪽 막대기가 잘려나간 부분이므로 b) 막대기 오른쪽인지 answer +1 ; //그래야 오른쪽 끝 막대기 부분(닫는 괄호 1개당) 잘림 처리 가능 import java.util.Scanner; import java.util.Stack; /* 5-5. 쇠막대기 [입력] 한 줄에 쇠막대기와 레이저의 배치를 나타내는 괄호 표현이 공백없이 주어진다. [출력] 잘려진 조각의 총 개수를 나타내는 정수를 한 줄에 출력한다. */ public class Main1 { //솔루션 함수 p..
- 알고리즘 이론 [개념]/[개념] 코테 알고리즘 공부 - 시즌 1
- · 2023. 3. 13.
복습 | 2장. 네트워크의 기본 규칙
2장. 네트워크의 기본 규칙 네트워크에서 문제없이 통신하려면 규칙(약속) = 프로토콜이 필요하다. 데이터 송수신에도 통신 규격이 필요한데, 각각의 계층별 필요한 다양한 프로토콜(통신 규약)이 있다. 🟥 프로토콜(Protocol) 메시지 주고받는 양식과 규칙 체계 🟥 OSI 모델과 TCP/IP 모델 🟥 캡슐화와 역캡슐화 데이터 송수신 과정에서 캡슐화와 역캡슐화가 이루어진다. 1) 캡슐화 : 보내는 데이터에 + 헤더(or 트레일러) 추가하여 하위 계층에 보내는 것 2) 역캡슐화 : 받은 데이터에 붙은 헤더(or트레일러) 분리하여 상위 계층으로 보내는 것 🟥 VPN (Virtual Private Network) | 가상 사설망 1) 인터넷 VPN : 일반 인터넷망 사용하므로 암호화 기능 필요 2) IP-VPN..
- [CS] 전공 공부 모음/[복습] Network_네트워크
- · 2023. 3. 10.
복습 | 1장. 네트워크 첫걸음
1장. 네트워크 첫걸음 🟥 컴퓨터 네트워크 컴퓨터 두 대 이상 연결하여 서로 데이터 전송 가능한 통신망 🟥 패킷(packet) 컴퓨터 간 네트워크 통해 전송되는 데이터의 작은 조각 네트워크에서 전송하는 데이터 기본 단위 🟥 디지털 데이터 - 비트와 바이트 비트 : 0과 1 나타내는 최소단위 바이트 : 8비트 = 1 byte 🟥 랜(LAN)과 왠(WAN) 네트워크 접속 범위에 따른 분류2) 왠(WAN) : 광역 통신망 1) 랜(LAN) : 근거리 통신망 🟥 가정에서의 랜 네트워크 구성 인터넷 공유기 중심으로 내부 인터넷망 구성하여 다양한 기기 연결하는 구조 🟥 회사에서의 랜 네트워크 구성 DMZ 네트워크 영역 | 공개서버 외부에 서버 공개 위한 네트워크 일반적으로 외부-내부 네트워크 사이에 위치한 중 간 ..
- [CS] 전공 공부 모음/[복습] Network_네트워크
- · 2023. 3. 10.
백준 | 스택 섹션 - 10828번. 스택 문제 풀이
10828번. 스택 문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스택이 비어있으면 1, 아니면 0을 출력한다. top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. 입력 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같..
- 코딩 테스트 [준비]/[문풀] Baekjoon_백준 문풀_조지기
- · 2023. 3. 10.
Stack, Queue - (1)
📍 섹션5.스택, 큐 (Stack, Queue) 자료구조 Stack, Queue - (1) 스택과 큐는 배열에서 발전된 형태의 자료구조 🟨스택 Stack 후입선출(LIFO : Last-In-First-Out) 삽입과 삭제 연산이 ‘한 쪽’에서만 일어난다 top ← 삽입과 삭제 일어날 위치 지칭 push : 데이터 삽입 연산 pop : 데이터 삭제 후 확인 연산 peek : top 데이터 단순 확인용 ⇒ 스택은 ‘DFS (깊이우선탐색)’ 과 백트랙킹 에서 多 사용 🟨큐 Queue 선입선출(FIFO : First-In-First-Out) 삽입과 삭제 연산 ‘양방향’에서 일어난다 먼저 들어온 데이터가 먼저 나감 rear ← 큐의 가장 끝 데이터 지칭 (데이터 삽입) front ← 큐의 가장 앞 데이터 지칭 (..
- 알고리즘 이론 [개념]/[개념] 코테 알고리즘 공부 - 시즌 1
- · 2023. 3. 10.
HashMap, TreeSet - (2)
HashMap, TreeSet - (2) 4-3. [Re] 매출액의 종류 import java.util.ArrayList; import java.util.HashMap; import java.util.Scanner; /* 04-03. 매출액의 종류 Re [입력] 첫 줄에 N(5
- 알고리즘 이론 [개념]/[개념] 코테 알고리즘 공부 - 시즌 1
- · 2023. 3. 7.
백준 | 10798번. 세로 읽기
0798번. 세로 읽기 입력 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’부터 ‘9’ 중 하나이다. 각 줄의 시작과 마지막에 빈칸은 없다. 출력 영석이가 세로로 읽은 순서대로 글자들을 출력한다. 이때, 글자들을 공백 없이 연속해서 출력한다. 내 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /* 백준 10798번. 세로읽기 [입력] 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주..
- 코딩 테스트 [준비]/[문풀] Baekjoon_백준 문풀_조지기
- · 2023. 3. 6.
HashMap, TreeSet - (1)
📍 섹션4.HashMap, TreeSet (해쉬, 정렬 지원 Set) HashMap, TreeSet - (1) HashMap (해쉬 맵) 이란? HashMap은 Key-Value가 1:1로 Mapping 되는 자료구조 Mapping으로 인해 삽입, 삭제, 검색이 평균적으로 O(1)인 자료구조 Key는 중복을 허용하지 않지만, Value는 중복을 허용한다. [관련 주요 메소드] //특정 key 존재 여부 확인 map.containsKey('A'); //중복 key 없게 각 키에 해당하는 값(없으면 기본값) 가져오기 map.getOrDefault('A', 0); //해쉬맵 크기 가져오기 map.size(); //해쉬맵 key값 기준으로 전체 탐색 map.keySet(); //특정 키 삭제 map.remove..
- 알고리즘 이론 [개념]/[개념] 코테 알고리즘 공부 - 시즌 1
- · 2023. 3. 6.