본문 바로가기

전체 글

(227)
콜드부팅이란? 저번 주 회의에서 '콜드부팅을 했을땐 정상 작동 하였습니다" 라는 말이 있었습니다 어렴풋이 부팅이라는 단어는 알고있지만 콜드부팅은 뭔지?! 알아봤습니다 먼저 부팅이란 전원 버트을 눌렀을 때 POST(Power On Self Test) 검사 단계를 거친 이후 OS를 렘으로 읽어 들여 컴퓨터가 우리 명령을 받아들일 준비하는 과정을 얘기합니다 POST검사단계는 바이오스에서 컴퓨터에 어떤 부품들이 있는지 잘 작동하는지 확인하는 단계라고합니다 콜드부팅은 렘이 차가운 상태(아무 정보도 없게 만든 상태)에서 부팅 하는 것으로 POST 단계를 거칩니다 예를들어 본체의 재부팅 버튼을 누르는 경우를 말합니다 웜부팅은 렘이 따듯한 상태에서 부팅 하는 것으로 ctrl+alt+del 이후 재시작을 하는 경우를 말합니다 (제가 ..
C#은 리버스가 된다?? 지난 주 회의에서 C#은 리버스가 된다는 얘기가 있었습니다. 리버스 엔지니어링이란 만들어진 프로그렘을 디컴파일링하는 것으로, 최초에 만들어진 코드와 약간 다를지는 몰라도 어떻게 작동하는지 알 수 있고 소스를 뽑고, 코드를 복사할 수 있는 행위입니다. 특히나 .Net Framework로 제작된 C#프로그렘은 구글링하면 간단히 찾을 수 있는 디컴파일러로도 쉽게 노출 됩니다. 그러기에 C#으로 프로그렘을 만들 경우 보안상 중요한 부분은 Native C++ / C++/CLI Wrapper Class 단계를 거쳐 코드를 지킨다고 합니다. C++또한 디컴파일링이 가능하지만 어셈블리어로 밖에 되지 않는다고합니다.
[백준 15702 C++] 중간고사 채점 각 학생들이 받은 점수들을 저장해서 1. 점수가 가장 높은 학생 기준 2. 번호가 가장 낮은 학생 기준 으로 정렬을 하는 문제입니다 학생 번호와, 학생 점수가 필요하니깐 Mx2 행렬을 만들어줬습니다 코드입니다 #include #include #include // sort 함수는 algorithm헤더에 들어있습니다 using namespace std; bool compareY(const pair& a, const pair& b) { // 정렬함수를 정의해줬습니다 if (a.second == b.second) { // 점수가 같으면 번호가 낮은거 기준으로 return a.first b.second; // 점수 기준으로 } int main(void) { ..
[백준 2810 C++] 컵홀더 커플석의 중간에는 컵홀더가 없습니다 (커플)(커플) 끼리 앉으면 두사람중 한명은 컵홀더를 사용할 수 없습니다 이런 경우를 계산해줍시다 코드입니다 #include #include // 문자열을 사용하기 위해선 string헤더를 추가해줍시다 using namespace std; int main(void){ string seats; int n; cin >> n; cin >> seats; for (size_t i=0; i
[백준 4344 C++] 평균은 넘겠지 오늘부터는 c++로 하겠습니다 코드입니다 #include #include //setprecision을 사용하기 위한 헤더 using namespace std; int main(void){ int C; // 테스트 케이스의 개수 cin >> C; double arr[C]; for (int i = 0; i > N; int scores[N]; // 점수를 저장할 틀 for (int j = 0; j > scores[j]; // 각 학생의 점수 입력받기 avg += scores[j]; } avg /= N; // 과목의 평균 double count = 0; for (int j=0; j
[백준 28014 JAVA 자바] 첨탑 밀어서 부수기 밀려 넘어지는 첨탑의 높이가 바로 그다음 첨탑의 높이보다 클 때만 그다음 첨탑도 밀려 넘어집니다 예제에서 1 3 2 5 8 1 인 경우 (1) (3 2) (5) (8 1) 이렇게 총 4번을 밀어야 합니다 i-1번째와 i번째를 비교해서 i-1 > i인 경우는 계속해서 넘어가고 (계속해서 넘어지기에) i-1
[백준 27866 JAVA 자바] 문자와 문자열 문자열 str과 숫자 i를 입력받아 문자열의 i번째 글자를 출력합시다 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str = scan.nextLine(); int a = scan.nextInt(); System.out.print(str.charAt(a-1)); } } str.charAt(i)는 i 번째 char를 출력해줍니다
[백준 27433 JAVA 자바] 팩토리얼 2 팩토리얼은 1부터 N까지의 곱을 말합니다 예를들어 5! (5팩토리얼)은 5*4*3*2*1 = 120입니다 1부터 N까지의 곱을 해야하기 때문에 for문을 이용하는게 보통이지만 저는 재귀함수를 이용해보겠습니다 코드입니다 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 IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.i..