목록백준 (31)
이우의 개발일지

백준 1541번 잃어버린 괄호 사실 그리디는 말그대로 욕심쟁이 알고리즘이라고, 매번 선택에 있어서 가장 최적의 답을 고르는 알고리즘입니다. 우리가 최적이라고 아니깐 이걸 쓰는거지 만약에 예외 테스트가 존재할 시 망할 수도 있는 것이죠. 그래서, 점화식을 잘 세우고 접근을 해야합니다. 이 문제를 봤을 때 괄호를 쳐서 최소의 숫자를 도출해내는 것이 요구 결과입니다.어떻게해야 최소가 된다고 하는지 유심히 봤을 때 뒤에 - 마이너스가 나오는 순간부터 다 빼주면 최소가 나오는 결과에 도달 할 수 있습니다. 또 다른 문제 조건은 string으로 한번에 받아서 문자를 숫자로 처리해야한다는 것인데요. 그래서 이부분에서는 STL 함수인 stoi 함수를 썼습니다. 이 함수는 string을 int형으로 바꿔주는 함수..

백준 10814번 나이순 정렬 이 문제는 시간 초과를 염두해야해서 이중 for문은 불가하다.그러면 sort함수를 사용하여 시간복잡도가 O(nlogn)으로 내려가게 만들어줘야한다. 하지만, 여기서 문제의 조건 중 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 만들어야한다. 따라서, 순서를 기억하는 방법과 stable_sort를 사용하는 방법이 있다. bool compare(pair a, pair b){ return a.first stable _sort의 사용 방법은 위 처럼 vector의 시작점과 끝점을 넣어주고 조건을 달아주면 끝이다.compare 조건문 안에서 a가 b보다 작으면 True, 크면 false를 해주면 된다. 이 함수는 stable_sort 함수가 벡..

백준 15650번 N과 M(2) 풀이 N과 M (2) 설명백트래킹은 완전 탐색과 비슷하게 하나하나 다 경우를 따져보는 알고리즘이다.일반적으로 다 따져보기 때문에 경우의 수가 큰 문제는 적용할 수 없다. 보통 재귀함수를 섞어서 쓰기 때문에 선행적으로 재귀에 대한 이해가 필요하다. 이 문제에서 볼 때 조건은 아래와 같이 2가지이다.조건 1. N개의 자연수를 M 개씩 나열한다.조건 2. 오름차순으로 나열한다. 조건 1을 따져보면 n개와 m개를 입력받고 재귀함수 안에서 m개의 조건을 충족하면 출력한다.bool issu[9];int list[9];int num = 0;int n, m;void func(int a) { if (num == m) { for (int i = 1; i i) continue; el..