⭐ 코딩테스트/프로그래머스
[프로그래머스 C++] 가장 큰 수
[프로그래머스 C++] 가장 큰 수
2023.11.07[프로그래머스 C++] 가장 큰 수 https://school.programmers.co.kr/learn/courses/30/lessons/42746 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결방안 문자열 정렬 string 정렬 처음 시도한 코드 - 시간초과. DFS #include #include #include using namespace std; vector newNum; int ch[1001]; int maxNum; void DFS(vector& v, int x, string s) { if(x == v.size()){ newNum.push_..
[프로그래머스 C++] 쿼드압축 후 개수 세기
[프로그래머스 C++] 쿼드압축 후 개수 세기
2023.11.06[프로그래머스 C++] 쿼드압축 후 개수 세기 https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결방안 쿼드트리 Quad Tree 재귀 코드 #include using namespace std; int zero, one; // 0 개수, 1 개수 bool Check(vector& v, int ny, int nx, int size) { int firstbox = v[ny][nx]; for(int y = ny; y < ny + size; y++){..
[프로그래머스 C++] 택배상자
[프로그래머스 C++] 택배상자
2023.11.05[프로그래머스 C++] 택배상자 https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 스택 Stack 정답코드 #include #include using namespace std; int solution(vector order) { int answer = 0; stack st; int j = 0; for(int i=0; i
[프로그래머스 C++] 2개 이하로 다른 비트
[프로그래머스 C++] 2개 이하로 다른 비트
2023.11.03[프로그래머스 C++] 2개 이하로 다른 비트 https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결방안 비트 조작(Bit Manipulation) 비트 연산(Bit Operation) 이 문제는, 짝수일 경우에는 1을 더하고 홀수일 경우에는 이진수 표현에서 가장 낮은 자리의 '0'을 '1'로 바꾸는 연산을 수행. 비트 조작을 통해 숫자를 최소한으로 증가시켜 다음 큰 수를 구하는 문제다. 처음 시도한 코드 - 시간초과 #include #inclu..
[프로그래머스 C++] 2 x n 타일링
[프로그래머스 C++] 2 x n 타일링
2023.11.02[프로그래머스 C++] 2 x n 타일링 https://school.programmers.co.kr/learn/courses/30/lessons/12900 해결방안 동적 계획법 Dynamic Programming (DP) 피보나치 Fibonacci 처음 시도한 코드 #include #include #include using namespace std; int solution(int n) { int answer = 0; vector dp(60001, 0); dp[1] = 1; dp[2] = 2; dp[3] = 3; for(int i=4; i
[프로그래머스 C++] 숫자 변환하기
[프로그래머스 C++] 숫자 변환하기
2023.11.01[프로그래머스 C++] 숫자 변환하기 https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결방안 BFS DP 처음 시도한 코드 - DFS 시간초과 #include #include #include using namespace std; int answer=INT_MAX; int cnt; void DFS(int x, int y, int n, int cnt) { if(x == y){ answer = min(answer, cnt); return; } e..
[프로그래머스 C++] [1차] 프렌즈4블록
[프로그래머스 C++] [1차] 프렌즈4블록
2023.10.27[프로그래머스 C++] [1차] 프렌즈4블록 https://school.programmers.co.kr/learn/courses/30/lessons/17679 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 구현 코드 #include #include #include using namespace std; vector v; int solution(int m, int n, vector board) { int answer = 0; // 제거된 블록의 개수를 저장할 변수 v = board; while (true) { vector coor; // 2x2 블록..
[프로그래머스 C++] 롤 케이크 자르기
[프로그래머스 C++] 롤 케이크 자르기
2023.10.25[프로그래머스 C++] 롤 케이크 자르기 https://school.programmers.co.kr/learn/courses/30/lessons/132265 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 처음 시도한 코드 #include #include #include using namespace std; map myMap; // key: 토핑의 종류, value: 위치 int cnt; // 전체 토핑의 종류 vector v; int solution(vector topping) { for(int i = 0; i < topping.size(); i..
[프로그래머스 C++] [3차] 파일명 정렬
[프로그래머스 C++] [3차] 파일명 정렬
2023.10.24[프로그래머스 C++] [3차] 파일명 정렬 https://school.programmers.co.kr/learn/courses/30/lessons/17686 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 문자열, substr isupper tolower 코드 #include #include #include #include using namespace std; struct File{ string head; int number; string tail; int index; // 입력 순서 File(string a, int b, string c, in..
[프로그래머스 C++] 오픈채팅방
[프로그래머스 C++] 오픈채팅방
2023.10.23[프로그래머스 C++] 오픈채팅방 https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 문자열 map sstream, stringstream -->> 사용하려면 #include 을 선언해야 한다. 코드 #include #include #include #include #include using namespace std; map idNname; // ID와 닉네임을 등록하는 map vector index; // 입장과 퇴장을 기록하는 배열 ve..
[프로그래머스 C++] 전력망을 둘로 나누기
[프로그래머스 C++] 전력망을 둘로 나누기
2023.10.19[프로그래머스 C++] 전력망을 둘로 나누기 https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 완전탐색 DFS 코드 #include #include using namespace std; vector adj; // 각 노드의 인접 노드를 저장 vector ch; // 각 노드가 속한 서브트리의 크기를 저장 // DFS 함수. 현재 노드와 이전에 방문한 노드를 인자로 받는다. void DFS(int curr, int prev = -1) { ..
[프로그래머스 C++] 더 맵게
[프로그래머스 C++] 더 맵게
2023.10.18[프로그래머스 C++] 더 맵게 https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 해결전략 힙 Heap priority queue priority_queue pQ; // 오름차순 코드 #include #include using namespace std; int solution(vector sco, int K) { int answer = 0; priority_queue pQ; // 낮은값이 위로 오도록 오름차순 정렬 for(int i=0; i= K..