⭐ 코딩테스트/프로그래머스
[프로그래머스 C++] 수식 최대화
[프로그래머스 C++] 수식 최대화
2023.11.23[프로그래머스 C++] 수식 최대화 https://school.programmers.co.kr/learn/courses/30/lessons/67257 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 순열 Permutation, 조합 Combination 문자열 do while(next_permutation(v.begin(), v.end())) 정답 코드 #include #include #include using namespace std; vector v; // 숫자 vector oper; // 연산자 long long answer; // 최종 결과..
[프로그래머스 C++] 괄호 변환
[프로그래머스 C++] 괄호 변환
2023.11.22[프로그래머스 C++] 괄호 변환 https://school.programmers.co.kr/learn/courses/30/lessons/60058 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 재귀 함수 Recursion 문자열 정답 코드 #include #include using namespace std; bool isCorrect(string str) // '올바른 괄호 문자열'인지 검사하는 함수 { int cnt = 0; for (char ch : str) { if (ch == '(') cnt++; else cnt--; if (cnt < ..
[프로그래머스 C++] [3차] 방금그곡
[프로그래머스 C++] [3차] 방금그곡
2023.11.21[프로그래머스 C++] [3차] 방금그곡 https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 문자열 검색 처음 시도한 코드 - 실패 #include #include #include #include using namespace std; vector result; string solution(string m, vector mu) { int n = mu.size(); string answer = "(None)"; for(int i=0; i 0)..
[프로그래머스 C++] 메뉴 리뉴얼
[프로그래머스 C++] 메뉴 리뉴얼
2023.11.20[프로그래머스 C++] 메뉴 리뉴얼 https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 조합 Combination 맵 Map 코드 #include #include #include #include using namespace std; vector answer;// 결과를 저장할 벡터 map myMap; // 각 메뉴 조합의 주문 횟수를 저장할 맵 int ch[10]; // 조합 생성 시, 해당 인덱스의 문자가 사용되었는지 확인하는 배열 //..
[프로그래머스 C++] 무인도 여행
[프로그래머스 C++] 무인도 여행
2023.11.17[프로그래머스 C++] 무인도 여행 https://school.programmers.co.kr/learn/courses/30/lessons/154540 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 너비 우선 탐색, BFS while(!Q.emtpy()) 가 돌기 전에 방문 체크 if (maps[y][x] != 'X' && ch[y][x] == 0) 를 먼저하여 다음 사이클에서 체크하지 않도록 한다. 정답 코드 #include #include #include #include using namespace std; int dirY[4..
[프로그래머스 C++] 124 나라의 숫자
[프로그래머스 C++] 124 나라의 숫자
2023.11.16[프로그래머스 C++] 124 나라의 숫자 https://school.programmers.co.kr/learn/courses/30/lessons/12899 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 진법 변환 구현 정답 코드 #include using namespace std; // n을 3진법으로 변환하되, 0 대신 4를 사용 string solution(int n) { string answer = ""; while (n > 0) { if (n % 3 == 0) { // 3진법에서는 '0'이지만 이 문제에서는 '0' 대신 '4'를 사용 a..
[프로그래머스 C++] 연속된 부분 수열의 합
[프로그래머스 C++] 연속된 부분 수열의 합
2023.11.15[프로그래머스 C++] 연속된 부분 수열의 합 https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 누적합 슬라이딩 윈도우(Sliding Window) 알고리즘 처음 시도한 코드 - 실패 #include using namespace std; vector v; // 시작Idx x 끝Idx. 값은 부분 수열의 합 vector solution(vector seq, int k) { vector answer(2, -1); // 조건을 만족하는 부분..
[프로그래머스 C++] 두 큐 합 같게 만들기
[프로그래머스 C++] 두 큐 합 같게 만들기
2023.11.14[프로그래머스 C++] 두 큐 합 같게 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결방안 큐, Queue 처음 시도한 코드 #include #include using namespace std; queue Q, calQ; int sumNum; int answer; int solution(vector queue1, vector queue2) { int n = queue1.size(); for(int i=0; i
[프로그래머스 C++] 삼각 달팽이
[프로그래머스 C++] 삼각 달팽이
2023.11.13[프로그래머스 C++] 삼각 달팽이 https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결방안 시뮬레이션, 구현 코드 #include #include using namespace std; int ch[1001][1001]; void Tri(int y, int x, int n) // (y, x)는 시작위치 { int val = ch[y][x]; for (int i = 0; i < n; i++) // 세로 방향 ch[y + i][x] = val++;..
[프로그래머스 C++] 다리를 지나는 트럭
[프로그래머스 C++] 다리를 지나는 트럭
2023.11.10[프로그래머스 C++] 다리를 지나는 트럭 https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결방안 큐 Queue 코드 #include #include #include using namespace std; int solution(int bl, int w, vector tw) { queue Q; // tw의 진입시간, 무게 Q.push({ 0, tw[0] }); // 첫 번째 트럭이 다리에 진입: 진입시간 0, 무게는 tw[0] int i = 1..
[프로그래머스 C++] 큰 수 만들기
[프로그래머스 C++] 큰 수 만들기
2023.11.09[프로그래머스 C++] 큰 수 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 탐욕법, 그리디 알고리즘, Greedy Algorithm 처음 시도한 코드 - 시간초과 #include #include using namespace std; vector dp; string solution(string number, int k) { int n = number.size(); int t = n - k; dp.resize(n); for(in..
[프로그래머스 C++] 소수 찾기
[프로그래머스 C++] 소수 찾기
2023.11.08[프로그래머스 C++] 소수 찾기 https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 완전 탐색, DFS 소수 set은 중복을 허용하지 않기 때문에 set에 수를 담는다. 코드 #include #include using namespace std; set mySet; // 중복되지 않는 숫자들을 저장하기 위한 집합 int ch[1000001]; // 방문 여부를 체크하기 위한 배열 bool Check(int x) // 소수를 판별하는 함수 ..