⭐ 코딩테스트
[백준 16953번 C/C++] A → B
[백준 16953번 C/C++] A → B
2023.11.14[백준 16953번 C/C++] A → B https://www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A > a >> b; bool success = false; while(b > 0) { if (b == a) { success = true; break; } int temp = b; if (b % 2 == 0){ b /..
[프로그래머스 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) // 소수를 판별하는 함수 ..
[프로그래머스 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_..
[백준 7576번 C/C++] 토마토
[백준 7576번 C/C++] 토마토
2023.11.06[백준 7576번 C/C++] 토마토 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 해결방안 너비우선탐색, BFS 코드 #include #include #include using namespace std; int m, n; // m: 가로(열) 크기, n: 세로(행) 크기 vector v, day; // v: 각 위치의 토마토 상태, day: 각 위치에서 토마토가 익는 데 걸리는 날짜를 저장 int totalDays; // 토..
[프로그래머스 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