문제https://www.acmicpc.net/problem/11000 접근법문제를 처음 봤을 땐 먼저 수업을 정렬해야겠다고 생각했다.시작 시간 순으로 정렬을 한 뒤, 현재 수업이 들어갈 강의실을 찾으면 된다.현재 수업이 들어갈 강의실은 앞 수업들의 종료 시간을 비교하면 된다. 현재 사용 중인 강의실들의 종료 시간을 저장한다.저장된 강의실의 종료 시간 중 가장 먼저 끝나는 강의실과 현재 수업의 시작 시간을 비교해 해당 강의실을 사용할지, 추가로 강의실을 사용할지 결정한다. 왜 가장 먼저 끝나는 강의실만 비교하면 될까?가장 먼저 끝나는 강의실을 현재 수업에서 사용할 수 없다면 더 늦게 끝나는 강의실 역시 사용할 수 없기 때문이다 코드import java.io.BufferedReader;import java..
자세한 설명 및 사용법은 유튜브나 위키백과에서 확인하시면 됩니다 ♪멀티미터(Multi Meter)멀티미터는 디버깅을 하기 위해 가장 기본적이며 필수적인 측정 장비이다. 측정 정보가 LCD에 표시되는 디지털 멀티미터가 많이 사용되며 DMM이라고도 한다.멀티미터는 교류/직류 전압 측정, 교류/직류 전류 측정, 저항 측정, 쇼트 검사, 다이오드 방향 측정 등의 기능을 가진다. 오실로스코프(Oscilloscope)오실로스코프는 신호 전압을 측정하여 그래프의 형태로 볼 수 있는 장비로, 신호의 전압, 주파수, 노이즈 등을 확인할 수 있는 기본 장비 중 하나이다. 비쌀수록 대역폭이 넓어 빠른 신호까지 측정할 수 있다. 시스템의 최고 주파수 2배~2.5배 이상의 샘플링 속도를 가지는 오실로스코프를 선택해야 신호 간섭..
cout과 std::cout C++에서는 위와 같이 cout과 를 이용해 다양한 데이터를 화면에 출력한다. 문자열 뿐만아니라 bool, char, short, int, long, float, double 모두 출력할 수 있다. cout 객체cout은 스크린 장치와 연결된 C++ 표준 출력 스트림 객체(standard output stream object)이다. cout은 C++ 프로그램에서 출력한 데이터를 자신과 연결된 스크린에 대신 출력해준다. cout 앞에 붙여진 std::의 접두어는 cout의 name space가 std임을 표시한다. 본래 헤더 파일에 재정의(operator overloading)되어 cout과 함께 사용된다. 아래 예시와 같이 다양하게 화면에 출력할 수 있다. std::cou..
typedef란? typedef를 사용하면 새로운 자료형을 정의할 수 있다. 즉, typedef 키워드를 사용해 C의 기본 자료형을 확장할 수 있다. 사용하는 방법은 다음과 같다. typedef unsigned char BYTE; unsigned char은 기존의 자료형, BYTE는 새로운 자료형이다. 기존의 자료형 unsigned char을 새로운 자료형 BYTE로 정의하는 것이다. unsigned char 형은 작은 정수를 저장하는 데에 사용할 수 있다. unsigned char만 보았을 때 정수를 저장하는 데 사용된다는 것을 알기 어렵기 때문에 BYTE라는 이름으로 새롭게 정의해준 셈이다. 이렇게 정의된 BYTE는 다음과 같이 사용할 수 있다. BYTE index; // unsigned char i..
공용체란? C에서 같은 메모리 영역을 여러 개의 변수들이 공유할 수 있게 하는 기능을 공용체라 한다. 같은 메모리 영역을 공유하게 되면 메모리를 절약할 수 있다. 공용체를 선언하고 사용하는 방법은 구조체와 비슷하며, 구조체와 똑같은 방법으로 태그를 붙여서 사용한다. 다만 공용체는 멤버들이 같은 공간을 공유하기 때문에 동시에 모든 멤버 변수들의 값을 저장할 수는 없으며, 어떤 순간에는 하나의 멤버만 존재할 수 있다. 구조체는 각 멤버가 독립된 공간을 할당 받고, 공용체는 가장 큰 멤버의 크기만큼 메모리가 할당된다. 공용체 선언 union example { char c; int i; } 여기서 union은 키워드이고 example은 공용체 태그 이름이며 변수 c와 i는 공용체의 멤버이다. 앞에서 말했듯이 공..
구조체란? 구조체는 C에서 사용되는 파생 자료형 중 가장 일반적이고 많이 사용되는 자료형이다. 파생 자료형이란 기본 자료형인 char, int, double에서 파생된 것으로 배열, 구조체, 공용체, 포인터 등을 들 수 있다. 동일한 자료형을 묶어서 사용하는 배열과 다르게 구조체는 다른 자료형을 하나로 묶어서 표현할 수 있다. 예를 들어 학생을 하나의 종류로 나타낸다고 할 때 다음과 같이 묶어서 나타낼 수 있다. int number; // 학번 char name[10]; // 이름 double grade; // 학점 구조체 선언 구조체는 struct 키워드를 사용해 다음과 같은 형식으로 정의된다. 구조체를 선언하는 것도 하나의 문장에 해당하기 때문에 구조체 선언의 마지막에 세미콜론을 붙여줘야 한다. st..
Data Binding 클라이언트가 서버에게 데이터를 전달했을 때, 서버가 전달된 데이터를 바인딩하는 것을 데이터 바인딩이라고 한다. @RequestParam 사용 @RequestParam 어노테이션을 사용하면 요청 파라미터를 메소드 파라미터에 바인딩 해준다. @RequestMapping(value="/docreate", method=RequestMethod.POST) public String doCreate(@RequestParam("name") String name, @RequestParam("email") String email, Model model) { Offer offer = new Offer(); offer.setName(name); offer.setEmail(email); } Spring ..
리전(Region)리전은 AWS의 데이터센터를 클러스터링하는 물리적인 장소이다. 리전 안에는 가용 영역이 여러 개 존재한다. 2023년 11월 2일 기준 AWS에서는 32개의 리전을 보유하고 있다. 리전이 여러 곳에 위치하고 있는 이유리전이 여러 곳에 위치하고 있는 이유는 네트워크 속도 때문이다. 멀리 떨어진 서버에 접속하기 위해서는 많은 라우터를 경유해야 하므로 속도가 느려질 수 밖에 없다. 따라서 주요 지역에 리전을 놓고, 가까운 리전에 접속해 빠른 속도를 낼 수 있게 한다. 또한, 여러 상황에 대비해 여러 곳에 두기도 한다. 어느 한 곳의 리전이 지진과 화재 같은 자연 재해로 인해 사용할 수 없게 되더라도, 다른 리전에 데이터가 백업이 되어있다면 정상적으로 서비스를 제공할 수 있다. 가용 영역(Av..