전체 글(66)
-
백준 1931_회의실 배정 / Python
문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나는 시간은 231-1보다 작거..
2024.02.28 -
백준 1541_잃어버린 괄호 / Python
문제 세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다. 그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다. 괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다. 입력으로 주어지는 식의 길이는 50보다 작거나 같다. 출력 첫째 줄에 정답을 출력한다. 예제 입력 1 55-50+40 예제 출력 1 -35 예제 입력 2 10+20+30+40 예제 출력 2..
2024.02.28 -
백준 1026_보물 / Python
문제 옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다. 길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자. S = A[0] × B[0] + ... + A[N-1] × B[N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다. S의 최솟값을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거나 같은 음이 아닌 정수이다. 출력 첫째 줄에 S의 최솟값을 출력한다. 예제..
2024.02.27 -
[알고리즘] 그리디 알고리즘
그리디 알고리즘; 욕심쟁이 알고리즘 : 지금 이 순간 당장 최적인 답을 선택하여 적합한 결과를 도출. 5개의 도시를 모두 한번씩만 거쳐서 가장 짧은 경로 찾기 -> 지금 위치한 도시에서 고를 수 있는 가장 짧은 도시로 가기*반복 따라서, 매 순간에서는 최적이지만 종합적으로 봤을 땐 최적이라는 보장이 없음. 부분의 최적해들의 집합이 곧 전체 문제의 해답이 될 때 사용 가능. 특징 탐욕 선택 속성 greedy choice property ; 매 선택이 독립. 최적 부분 구조 optimal substructure ; 문제의 최적 해결 방법==부분 문제에 대한 최적 해결 방법 최적해라는 보장은 없지만 빠른 경우가 많기 때문에 실용적으로 사용 가능. "근사해" 구하는 목적 수행과정 1. 해 선택: 알고리즘 고안 ..
2024.02.25 -
[프로젝트] AI를 활용한 악성코드 분류기_트로이 목마란
프로젝트를 시작하기에 앞서 악성코드 4가지 종류를 하나씩 맡아 조사해오기로 했다. 바이러스/웜/트로이목마/스파이웨어 중 나는 트로이목마를 맡았다. 트로이 목마란? 트로이 전쟁 당시 그리스인들이 트로이성에 입성해 전쟁에서 승리할 때 사용. 표적이 안전하게 보호된 요새나 장소로 적을 초대하게 만드는 모든 속임수나 책략을 의미. 악성 컴퓨터 프로그램으로의 트로이 목마는 즉, 정상적인 프로그램 같지만 실행하면 악성코드를 실행시키는 프로그램이다. 사용자 스스로 방어망 안쪽으로 들어오도록 유도. - 기술적인 측면이 아닌 사회공학 기법(신뢰를 기반으로 사람을 속임.)의 형태. - 백도어로서 많이 사용됨. - 쉽게 발견되기 힘들지만, 무거워진 CPU와 네트워크 사용으로 느려지는 현상이 나타나긴 함. - 바이러스나 웜과..
2024.02.24 -
[C언어] 스택(POP, PUSH, PEEK 구현), 레지스터, 스택프레임
C언어는 써본 적이 없어서 환경설정부터 해주었다. https://blog.naver.com/nms200299/222129689157 VSCode(비주얼스튜디오 코드) C언어 개발환경 구축 1. MinGW 설치 MinGW는 윈도우용 GCC 컴파일러로, VSCode(비주얼스튜디오 코드)에서 C언어 개... blog.naver.com 1. 스택(POP, PUSH, PEEK 구현) 우선 C언어에는 리스트라는게 없고 배열?이라는 것만 있다고 한다.. 그래서 구조체로 스택처럼 보이는 배열을 만들어 준 후 스택처럼 사용해주면 된다. #include #include #define MAX_SIZE 100 // 스택 구조체 정의 typedef struct { int items[MAX_SIZE]; int top; } Sta..
2024.02.12