⭐ 코딩테스트/프로그래머스
[프로그래머스 C++] [3차] 압축
[프로그래머스 C++] [3차] 압축
2023.09.27[프로그래머스 C++] [3차] 압축 https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 문자열 Map 검색 LZW(Lempel–Ziv–Welch) 압축 알고리즘 정답 코드 #include #include #include using namespace std; map myMap; // 사전 등록에 쓰일 map vector solution(string msg) { vector answer; for (int i = 0; i < 26; i++) ..
[프로그래머스 C++] 타겟 넘버
[프로그래머스 C++] 타겟 넘버
2023.09.26[프로그래머스 C++] 타겟 넘버 https://school.programmers.co.kr/learn/courses/30/lessons/92335 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 소수 구하기, 에라토스테네스의 체 (맨 아래에 코드 설명 참조) 문자열 stol 주의할 점! 진법 변화 시 검사하는 숫자값이 커지니 int가 아닌 long long을 사용해야 한다. stoi (x), stol (o) 소수 판정 방법 처음 시도한 코드 #include #include using namespace std; int solution(int n, ..
[프로그래머스 C++] 타겟 넘버
[프로그래머스 C++] 타겟 넘버
2023.09.25[프로그래머스 C++] 타겟 넘버 https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 DFS BFS DP 처음 시도한 코드 DFS - 시간초과 #include #include #include using namespace std; int answer; // 타겟 넘버를 만드는 방법의 수 int ch[1001]; // 방문 체크 배열 void DFS(int x, int sum, int target, vector& numbers) { if(x ..
[프로그래머스 C++] 프로세스
[프로그래머스 C++] 프로세스
2023.09.23[프로그래머스 C++] 프로세스 https://school.programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 Queue 큐, Priority_Queue 우선순위 큐 코드 #include #include #include using namespace std; int solution(vector priorities, int location) { queue Q; priority_queue pQ; for (int i = 0; i < priorities.size(); i++..
[프로그래머스 C++] 기능개발
[프로그래머스 C++] 기능개발
2023.09.22[프로그래머스 C++] 기능개발 https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 스택 Stack 나눗셈 올림 x와 y가 양의 정수, x / y의 결과값을 올림하기 위한 코드 int ceilResult = x / y + ( x % y !=0 ); 올림 함수 : ceil() 내림 함수 : floor() - 올림 함수와 내림 함수는 소수형인 double, float형 일 때는 효과적이나 주어진 값이 정수이면 위의 코드 방식이 더 수월하다. ..
[프로그래머스 C++] [1차] 뉴스 클러스터링
[프로그래머스 C++] [1차] 뉴스 클러스터링
2023.09.21[프로그래머스 C++] [1차] 뉴스 클러스터링 https://school.programmers.co.kr/learn/courses/30/lessons/17677 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 문자열 isupper() 대문자인지 확인 tolower() 대문자를 소문자로 변환 string tmp = str1.substr(i, 2); C++의 std::string 클래스에서 사용할 수 있는 substr 함수를 사용하여 문자열에서 일부를 추출하는 코드. str1은 원본 문자열이며, i는 현재 문자열에서 추출을 시작할 위치를 나타낸다. ..
[프로그래머스 C++] 튜플
[프로그래머스 C++] 튜플
2023.09.19[프로그래머스 C++] 튜플 https://school.programmers.co.kr/learn/courses/30/lessons/64065 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 문자열 map pair 코드 #include #include #include #include using namespace std; vector solution(string s) { map m; // 숫자와 그 등장 횟수를 저장할 맵 int tmpNum = 0; // 현재 파싱 중인 숫자 //처음과 끝의 {, } 제외하고 for문을 돌린다. 1~s.size()-..
[프로그래머스 C++] 피로도
[프로그래머스 C++] 피로도
2023.09.15[프로그래머스 C++] 피로도 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 DFS 완전 탐색 코드 #include #include #include using namespace std; int maxCnt; // 방문 가능한 최대 던전 개수 int ch[8]; // 각 던전에 대한 방문 여부 체크 배열 // x: 현재 에너지, dungeons: 각각의 던전 정보 (에너지 요구량, 소모량), cnt: 현재까지 방문한 던전의 개수 voi..
[프로그래머스 C++] 의상
[프로그래머스 C++] 의상
2023.09.15[프로그래머스 C++] 의상 https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 map 안의 벡터 배열 key와 여러개의 value 코드 #include #include #include #include using namespace std; int solution(vector clothes) { map myMap; //맵 생성, key: 의상의 종류, value: 의상의 이름들을 값 for (int i=0; isecond.push_back(..
[프로그래머스 C++] 행렬의 곱셈
[프로그래머스 C++] 행렬의 곱셈
2023.09.13[프로그래머스 C++] 행렬의 곱셈 https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 구현 행렬의 곱 코드 #include #include using namespace std; vector solution(vector arr1, vector arr2) { vector answer(arr1.size(), vector(arr2[0].size())); for (int y = 0; y < arr1.size(); y++) { for (int x ..
[프로그래머스 C++] n^2 배열 자르기
[프로그래머스 C++] n^2 배열 자르기
2023.09.13n^2 배열 자르기 https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 동적계획법, Dynamic Programming, DP 구현 첫번째 시도 코드 - 시간초과 #include #include using namespace std; vector solution(int n, long long left, long long right) { vector result(n*n); vector answer(right - left + 1); vector..
[프로그래머스 C++] 피보나치 수
[프로그래머스 C++] 피보나치 수
2023.09.12[프로그래머스 C++] 피보나치 수 https://school.programmers.co.kr/learn/courses/30/lessons/12945 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 동적계획법 Dynamic Programming, DP 코드 #include #include using namespace std; int solution(int n) { int answer = 0; vector fib(n+1); fib[0] = 0; fib[1] = 1; for(int i=2; i