반응형

전체 글 102

OSI 7계층

OSI 7계층 OSI : Open System Interconnection의 약어. 네트워크 통신 과정을 7단계로 나눈 것을 의미한다. 유래 초창기 컴퓨터는 통신 시의 HW/SW의 호환을 고려하지 않고 개발되었다. 이에 국제 표준화 기구(ISO)는 다른 컴퓨터 간 통신 기능을 7계층으로 구분해 각 계층마다의 표준화된 서비스와 프로토콜을 규정하여, 서로 다른 환경의 컴퓨터 간 통신이 가능해졌고, 각 계층은 독립적인 역할을 수행할 수 있어 문제가 발생하여도 계층별로 원인 분석을 통해 원만한 해결이 가능해졌다. 헤더가 붙는 이유는 데이터를 전송할 때 각 층을 인식할 수 있어야 하기 때문이다. Encapsulation and Decapsulation 데이터 전송은 7계층에서 시작해 제일 하위 계층인 1계층까지 ..

JAVA/공부 2022.09.02

자바 Adapter 클래스

이벤트를 처리하기 위해선 인터페이스를 사용해야 하는데, 인터페이스엔 구현해야 하는 추상 메서드가 제공된다. Adapter 클래스가 인터페이스를 구현했기 때문에 이벤트 처리를 구현할 때 인터페이스 대신 Adapter 클래스를 사용해 원하는 메서드만 구현해 쓰면 된다. 그렇지 않으면 실제로 필요하지 않은 메서드도 모두 코드에 작성해줘야 하기 때문에 지저분해지기 때문이다. 사용방법 1) 외부 클래스에 별도 클래스를 생성해 생성자로 필드 공유. import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.Key..

JAVA/공부 2022.09.01

자바 AWT 이벤트

이벤트 소스 이벤트가 발생할 수 있는 대상. 컴포넌트. 이벤트 리스너 이벤트 소스에서 이벤트가 발생하는지 검사하닥 이벤트가 발생되면 실제적으로 이벤트를 처리할 수 있는 인터페이스 이벤트 핸들러 이벤트 리스너에 전달된 이벤트를 실제로 처리할 수 있도록 이벤트 리스너에 포함되어 있는 메서드로 발생된 이벤트 객체를 받아 실제적인 처리를 해주는 기능을 가진다. import java.awt.BorderLayout; import java.awt.Button; import java.awt.Frame; import java.awt.Panel; import java.awt.TextArea; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; ..

JAVA/공부 2022.09.01

백준 1991번 : 트리 순회

[레벨4] · 문제 이진 트리를 입력받아 전위 순회(preorder traversal), 중위 순회(inorder traversal), 후위 순회(postorder traversal)한 결과를 출력하는 프로그램을 작성하시오. 예를 들어 위와 같은 이진 트리가 입력되면, 전위 순회한 결과 : ABDCEFG // (루트) (왼쪽 자식) (오른쪽 자식) 중위 순회한 결과 : DBAECFG // (왼쪽 자식) (루트) (오른쪽 자식) 후위 순회한 결과 : DBEGFCA // (왼쪽 자식) (오른쪽 자식) (루트) 가 된다. · 입력 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름..

백준 15686번 : 치킨 배달

[레벨4] · 문제 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 집을 기준으로 정해지며, 각각의 집은 치킨 거리를 가지고 있다. 도시의 치킨 거리는 모든 집의 치킨 거리의 합이다. 임의의 두 칸 (r1, c1)과 (r2, c2) 사이의 거리는 |r1-r2| + |c1-c2|로 구한다. 예를 들어, ..

백준 2407번 : 조합

[레벨4] · 문제 nCm을 출력한다. · 입력 n과 m이 주어진다. (5 ≤ n ≤ 100, 5 ≤ m ≤ 100, m ≤ n) · 출력 nCm을 출력한다. · 풀이 import java.io.BufferedReader; import java.io.InputStreamReader; import java.math.BigInteger; public class Main { public static void main(String[] args) throws Exception { //자바 입출력 함수. BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //입력값을 공백 기준으로 나눠 문자열형 배열에 저장. String[] str =..

백준 15650번 : N과 M (2)

[레벨4] · 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 고른 수열은 오름차순이어야 한다. · 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) · 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. · 풀이 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.St..

백준 11053번 : 가장 긴 증가하는 부분 수열

[레벨4] · 문제 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다. · 입력 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) · 출력 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. · 풀이 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokeni..

백준 12852번 : 1로 만들기 2

[레벨5] · 문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. · 입력 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. · 출력 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. 둘째 줄에는 N을 1로 만드는 방법에 포함되어 있는 수를 공백으로 구분해서 순서대로 출력한다. 정답이 여러 가지인 경우에는 아무거나 출력한다. · 풀이 import java.io.BufferedReader; import java.io.IOExcept..

백준 15652번 : N과 M (4)

[레벨4] · 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A1 ≤ A2 ≤ ... ≤ AK-1 ≤ AK를 만족하면, 비내림차순이라고 한다. · 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) · 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. · 풀이 import java.io.BufferedReader; import j..

카테고리 없음 2022.08.30
반응형