#INFO 난이도 : BRONZE1 알고리즘 유형 : STACK(스택) ∝문제 출처 : https://www.acmicpc.net/problem/9093 #SOLVE 스택 자료구조를 이용해 풀이 하였다. getline() 함수를 이용해서 모든 문자열을 받아들인 후 , 반복문을 돌려서 공백을 만나기 전까지 문자를 스택에 쌓고, 공백을 만나면 가장 위에 있는 단어부터 스택을 pop 한다. 이렇게 하면 각 단어들이 뒤집어 출력되게 된다. 하지만 이 방식에는 한 가지 문제점이 존재한다. 공백을 만날 때 스택을 하나 씩 꺼내게 되면 마지막 문자열(GH)는 출력을 못하게 된다. 따라서, 입력받은 문자열에 '/n' 문자를 추가해 준 뒤, 공백 또는 '/n'을 만날 때 스택을 하나 씩 꺼내게 해 주면 모든 문자를 뒤집..
#INFO 문제이름 : 모의고사 난이도 : LEVEL1 사용언어 : C++ 문제유형 : 완전탐색 문제출처 : https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr #SOLVE 우선 1번,2번,3번 수포자의 정답을 찍는 규칙을 전역으로 벡터에 담아준다. vector stu1 = {1,2,3,4,5}; vector stu2 = {2,1,2,3,2,4,2,5}; vector stu3 = {3,3,1,1,2,2,4,4,5..
#문제정보 출처 : https://www.acmicpc.net/problem/2776 난이도 : 실버3 사용된 알고리즘 : 이진탐색 알고리즘 #문제분석 단순 중첩 for로 돌리면 시간초과(TLE)가 나기에, 이진탐색 알고리즘(binary search)을 이용해 풀이했습니다. C++ STL의 라이브러리는 binary search 알고리즘을 지원하지만, 연습용으로 직접 이진탐색을 구현했습니다. int binSearch(int arr[], int len, int key) { int l = 0; int r = len - 1; int m; while (l
#문제정보 출처 : www.acmicpc.net/problem/11000 난이도 : 골드5 분류 : 그리디(GREEDY) 알고리즘 #문제분석 저는 11000 문제 풀이를 위해서 C++ STL의 우선순위 큐(priority_queue) 자료구조를 사용했습니다. 문제에서 주어진 예제(1,3)(2,4)(3,5)를 통해서 설명하도록 하겠습니다. 우선, 시작시간을 기준으로 오름차 정렬을 수행합니다. 다음으로, 시작시간이 가장 빠른 수업의 끝나는 시간(3)을 우선순위 큐(priority_queue)에 push합니다. (* 참고로 priority_queue는 오름차순으로 설정합니다.) priority_queue 에 다음으로 시작시간이 빠른 수업의 끝나는시간(4)를 push 합니다. 그 후 , 첫 번째 수업의 끝나는 ..
#문제정보 출처 : www.acmicpc.net/problem/2847 난이도 : 실버4 분류 : 그리디(GREEDY) 알고리즘 #문제분석 레벨별로 점수를 부여하기 위해서는, 각 레벨의 점수가 오름차 순으로 주어져야 합니다. 단, 점수를 내리는것을 최소한으로 해야 하기 때문에, i-1번째 레벨의 점수가 i번째 레벨의 점수보다 높은 점수를 갖고 있다면, i번째 레벨의 점수 - 1 값을 i-1번째 레벨에 부여하면 됩니다. 따라서 저는 레벨의 점수를 갖고 있는 level 벡터의 마지막 값을 compare 점수에 초기화 한 뒤 반복문을 돌려서 뒤에서부터 차례로 검사했습니다. int compare = level[N-1]; for (int i = N - 2 ; i >= 0 ; i--) { while (level[i..