목록전체 글 (59)
이우의 개발일지
백준 1650번 좌표 정렬하기 https://www.acmicpc.net/problem/11650 어려웠던 점 1 이중 벡터 값 집어넣기 vector안에 값을 넣는 건 어렵지 않지만, 이중벡터는 꽤나 난처하게 다가왔다.밑에 요것저것 시도했던 흔적...vector range가 넘었다는 에러가 많이 떴다... 어케하지 했을 때 지피티 형님이 잘알려주었다. 그냥 단순히 가로 하나 추가해주면 된다는 사실...vec.push_back({num1,num2}); ㅋㅋ 쉽네요,, 실패 코드 vec[i][0] = num1;// vec[i][1] = num2; /*vec.push_back(make_pair(num1, num2)); vec[i].push_back(num1); vec[i].push_back(num2);..
Sort 정렬 함수 오름차순정렬함수 sort는 주어진 숫자들을 오름차순으로 정렬해주는 함수입니다.코딩테스트 문제를 풀 때 유용하게 쓰이는 함수이죠. 시간 복잡도는 O(nlogn)입니다. sort 기본 사용법#include #include #include int main() { std::vector vec = {4, 2, 5, 3, 1}; std::sort(vec.begin(), vec.end()); for (int num : vec) { std::cout 결과위처럼 sort는 sort(시작점, 끝점)을 통해 입력해주시면 됩니다. 이게 기본 사용형이고, 이렇게 하면 자연스레 1,2,3,4,5로 출력이 됩니다. sort 사용자 정의 비교 함수 사용#include #include..
백준 11723번 집합https://www.acmicpc.net/problem/11723 이 문제를 쉽게 생각하고 접근했다면, 낭패를 봤을 것이다.단순히 add, remove, check, toggle, all, empty 함수를 구현하는게 아닌 만약 그게 존재한다면 추가를 안하는 식의 조건이 붙는다. 문제 1. 배열 사이즈 사용 X - (1 ≤ x ≤ 20이라는 조건 문제 조건 중 숫자의 크기는 20이하라는 조건이 주어졌다. 이를 무시하고 단순히 deque로 구현을 할려다보니 만약 수를 빼야되면, 그 수를 앞으로 보내질때까지 pop을 하는 방법을 썼다. (난이도 4배쯤 상승..) 문제 2. deque 사이즈 변동저번 글에서도 똑같은 실수를 했는데 deque, queue, stack 등의 사이즈를 ..
프로그래머스PCCE 기출문제 10번문제 설명AI 엔지니어인 현식이는 데이터를 분석하는 작업을 진행하고 있습니다. 데이터는 ["코드 번호(code)", "제조일(date)", "최대 수량(maximum)", "현재 수량(remain)"]으로 구성되어 있으며 현식이는 이 데이터들 중 조건을 만족하는 데이터만 뽑아서 정렬하려 합니다.예를 들어 다음과 같이 데이터가 주어진다면data = [[1, 20300104, 100, 80], [2, 20300804, 847, 37], [3, 20300401, 10, 8]]이 데이터는 다음 표처럼 나타낼 수 있습니다.주어진 데이터 중 "제조일이 20300501 이전인 물건들을 현재 수량이 적은 순서"로 정렬해야 한다면 조건에 맞게 가공된 데이터는 다음과 같습니다.data =..
백준 11659번 구간 합 구하기 4문제 1 변수 stack 초과N, M, j, k 의 제한이 100,000이다. 이 모든 변수들의 배열을 100,000으로 주면 STACK 초과가 뜬다.처음은 아래 처럼 풀려고 했지만, 스택 초과 오류가 떴다. 배열 공간을 낮춰주니 정답은 맞았지만 바꿔줘야 했다. #include#includeusing namespace std;int d[100004];int main() { int n,m; cin >> n>> m; vector vec; int i[100004]; int j[100004]; int N[100004]; for (int i = 1; i > N[i]; for (int k = 1; k > i[k] >> j[k]; for (int k = 1; k 문제 2 시간 초..
백준 1149번 RGB 거리 #include#includeusing namespace std;int d[1001][4];int main() { int n; cin >> n; vector> vec; int r[1000]; int b[1000]; int g[1000]; for (int i = 1; i > r[i] >> b[i] >> g[i]; d[1][0] = r[1]; d[1][1] = g[1]; d[1][2] = b[1]; for (int i = 2; i
백준 2579번 계단 오르기https://www.acmicpc.net/problem/2579 이번 계단 오르기 문제는 2차 배열을 이용해 풀었다.전에 풀었던 DP 문제에서 세번째 연속되면 안되는 조건이 추가되어, 그 조건을 컨트롤하는데 추가 배열이 필요했다. (D[300][3]으로 설정해줘도 됨.) d[i][1] -> 전 계단을 건너뛰고 밟은 i 번째 계단d[i][2] -> 전 계단을 밟고 두번 연속되게 밟은 i 번째 계단(d[i][2]일 때는 무조건 d[i-1][1]을 밟았다고 해야됨 & 다음 계단은 무조건 건너뛰어야됨) 이라는 조건이 붙는다. 여기서 내가 간과한 점:d[i][1] = max(d[i - 2][1], d[i - 2][2]) + vec[i];당연히 d[i-2][2] 가 d[i-2][1]보..
백준 9095번 1,2,3 더하기 이번 문제는 DP를 잘쓰냐를 확인하는 문제이다.DP 의 중요한 점은 테이블과 점화식 세우기이다.이 규칙을 잘 파악할 수 있으면 금방 풀 수 있을 것이다. #include#includeusing namespace std;int d[10000005];int main() { int t; cin >> t; vector vec; for (int i = 0; i > num; vec.push_back(num); } d[1] = 1; d[2] = 2; d[3] = 4; for (int i = 4; i