본문 바로가기

코테 끄적임

(6)
[ 백준 18870 ] 좌표 압축 https://www.acmicpc.net/problem/18870 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다.X1, X2, ..., XN에 좌표 압축을 적용한 결과 X'1, X'2, ..., X'N를 출력해보자.  자기 자신보다 작은 값의 개수들을 출력하는 문제다.단순히 모든 값에 대해 자신보다 작은 값을 탐색하면서 개수를 세는 방식은 비효율적이라고 판단했다. 따라서 정렬을 이용하면, 좌표 압축에 필요한 순서를 효율적으로 정할 수 있다고 생각했다. 전체 코드#include #include #include using namespace std..
[백준 1206 ] DFS와 BFS 펄어비스 코테 준비로 백준 문제이지만 프로그래머스 스타일로 코딩해봤다.백준 1206는 DFS와 BFS 모두 구현해야하는 문제다.https://www.acmicpc.net/problem/1260 //예제 입력 25 5 35 45 21 23 43 1//예제 출력 23 1 2 5 43 1 4 2 5//예제 입력 31000 1 1000999 1000//예제 출력 31000 9991000 999 예제 2를 보고 양방향 연결이라는 걸 알 수 있었다. 예제 입력3을 보고 graph를 vector 대신 map>로 처리하고 visited은 set으로 처리해야 한다고 판단했다.왜냐하면 vector>를 사용하면 정점 번호가 1부터 1000까지 모두 할당되므로, 1000개의 빈 벡터가 생성되고visited도 vector 사용..
[프로그래머스 Lv. 2] 올바른 괄호 https://school.programmers.co.kr/learn/courses/30/lessons/12909 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 요구사항: "문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return" 괄호 짝이 맞아야 한다.s = "( ( ( ( ( ( ( ( ( ( ) ) ) ) ) ) ) ) ) )"문자열 s를 보면 열린 괄호가 계속 나오다가 나중에 닫힌 괄호가 나온다.가장 나중에 나오는 열린 괄호가 가장 먼저 닫히게 된다.LIFO (Last In, First Out) 다. 그래서 stack을 사용했다. #includ..
[프로그래머스 Lv. 2] 최댓값과 최솟값 https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 요구사항:문자열 s 숫자 중에 최솟값과 최댓값을 찾아야한다.  문자열에서 숫자를 뽑아내야 한다.신경 써야하는 건 부호 처리하는 것과 문자열에 있는 숫자가 한 자리 수가 아닐  수도 있다는 점이다. #include #include #include using namespace std;string solution(string s) { s += " "; int op = 1; int min = numeric_limits::max(); ..
[프로그래머스 Lv. 1] 같은 숫자는 싫어 https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr요구사항:"배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다." 스택이나 큐를 사용해서 최근에 들어온 값이랑 들어올 값을 비교하면 되는 간단한 문제다. 함수 반환될 때 원소들의 순서가 유지되어야 하기 때문에 편하게 선입선출인 큐를 사용했다.#include #include using namespace std;vector solut..
[프로그래머스 Lv. 1] K번째 수 https://school.programmers.co.kr/learn/courses/30/lessons/42748 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 요구사항 : "배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다." 반복자를 사용하면 쉽게 풀 수 있을 것 같다.#include #include #include using namespace std;vector solution(vector array, vector> commands) { vector answer; for(const auto& cmd : commands){ ..