목록잡동사니/[2022] 회로이론 (81)
기록
https://www.acmicpc.net/problem/1940 1940번: 주몽 첫째 줄에는 재료의 개수 N(1 ≤ N ≤ 15,000)이 주어진다. 그리고 두 번째 줄에는 갑옷을 만드는데 필요한 수 M(1 ≤ M ≤ 10,000,000) 주어진다. 그리고 마지막으로 셋째 줄에는 N개의 재료들이 가진 고 www.acmicpc.net N의 최대 범위가 15,000이므로 O(nlogn) 시간 복잡도 알고리즘을 사용해도 문제가 없겠네요. 일반적으로 정렬 알고리즘의 시간 복잡도는 O(nlogn) 입니다. 입력받은 N개의 재룟값을 정렬한 다음 얀쪽 끝의 위치를 투 포인터로 지정해서 문제에 접근해보겠습니다. 1. 재료들을 오름차순으로 정렬하기 2. 결과 찾기 2-1. 만약 합이 M과 같으면 count++, st..

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; // 투 포인터 public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); // 정수 N 입력받기 int N = Integer.parseInt(st.nextToken())..

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; // 윈도우 합 + 나머지 // 원래 배열 따로 생성하지 않고 // 바로 합 배열 생성 public class prob10986 { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); // 숫자의 개..

https://www.acmicpc.net/problem/11660 11660번: 구간 합 구하기 5 첫째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다. (1 ≤ N ≤ 1024, 1 ≤ M ≤ 100,000) 둘째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 네 www.acmicpc.net 구간 합 배열이 1차원에서 2차원으로 확장되었습니다. S [x] [y] = 원본 배열의 (1,1) 부터 (X,Y)까지의 사각형 안에 있는 수의 합 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringT..

게임 월드 속 사물을 '오브젝트'라고 합니다. 온전한 하나의 사물이라고 인식할 수 있다면 어떠한 것도 오브젝트가 될 수 있습니다. 예를 들어 게임 상의 캐릭터는 캐릭터 오브젝트, 탄알은 탄 알 오브젝트, 바위는 바위 오브젝트라고 할 수 있습니다. 게임이 아니더라도 대부분의 프로그램에서는 '하나의 독립적인 사물을 오브젝트라는 단위로 표현합니다. 그러한 오브젝트들이 상호작용하여 프로그램을 이룹니다. 이 장에서 배울 객체지향은 독립적이며 스스로 동작하는 여러 객체 (오브젝트)가 모여 거대한 프로그램이 완성되는 구조를 만드는 방법입니다. 그리고 그것이 우리가 작성할 유니티 C# 스크립트의 클래스가 동작하는 방식입니다. 이 장에서는 클래스와 오브젝트의 개념과 그것을 어떻게 C# 문법에서 사용하는지 배웁니다. 또한..

구간합 package Test; import java.util.Scanner; public class Main { public static void main(String[] args) { // 숫자 개수 n과 합을 구해아 하는 수 m 입력받기 Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); long[] A = new long[n+1];// 숫자 배열 long[] S = new long [n+1];// 합 배열 // 숫자 입력받기 for(int i=1; i
https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최댓값을 골랐다. 이 값을 M이라고 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어, 세준이의 최고점이 70이고, 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계산했을 때, 새로운 평균을 구하..

이번에는 MAC 주소에 대해서 알아보겠습니다. 랜 카드는 비트열 (0과 1)을 전기신호로 변환합니다. 이러한 랜 카드에는 MAC 주소라는 번호가 정해져 있습니다. 제조할 때 새겨지기 때문에 물리 주소 라고도 부르는데 전 세계에서 유일한 번호로 할당되어 있습니다. MAC 주소는 48비트 숫자로 구성되어 있습니다. 그중 앞쪽 24비트는 랜카드를 만든 제조사 번호고 뒤쪽 24비트는 제조사가 랜 카드에 붙인 일련 번호입니다. 이제 MAC 주소를 사용한 통신에 대해 살펴보겠습니다. OSI 모델이나 TCP/IP 모델을 떠올려 보면 각 계층에서 헤더를 붙입니다. OSI 모델에서는 데이터 링크 계층에 해당하고 TCP/IP 모델에서는 네트워크 계층에 해당하는데 이 계층에서 이더넷 헤더와 트레일러를 붙입니다. 이더넷 헤더..