본문 바로가기

C++/코딩테스트3

프로그래머스: 알고리즘 문제 풀이(c++) 1. 해시파트1-1. 포켓몬set함수를 통해 중복 요소 제거nums.size()/2 : nums의 요소개수의 절반보다 nums_set의 요소가 더 많다면 최대 nums_set의 개수만큼 각기 다른 종류의 포켓몬이 존재한다는 것 어차피 최대 nums/2 종류의 개수만큼 고를 수 있기에 nums/2가 반환nums.size()/2 > nums_set.size(): nums.size()/2개 최대 고를 수 있는데 각기 다른 종류의 개수인 nums_set.size()가 더 작다면 어차피 nums_set.size()개만큼 골라야 다른 종류를 최대 고를 수 있음#include #include #include using namespace std;int solution(vector nums) { int ans = 0;.. 2024. 7. 23.
[C++] 백준 3085 1. 문제 https://www.acmicpc.net/problem/3085 3085번: 사탕 게임 예제 3의 경우 4번 행의 Y와 C를 바꾸면 사탕 네 개를 먹을 수 있다. www.acmicpc.net 2. 고려사항 (1) main함수 ( 편의상 2차원 배열을 NxN 행렬이라 표현하겠음 ) N 입력받으면 동적할당 이용하여 2차원 배열 생성 후 모든 요소 값 입력 NxN 행렬에서 i=0~N, j=0~N까지 반복문을 돌리면서 값이 다르면 swap을 해준다 이때, 굳이 행렬 요소의 동서남북 체크 필요 없이 오른쪽, 아래방향으로만 체크해나감(뻗어나간다고 생각) → ex.arr[0][1]과 이 요소의 오른쪽 arr[0][2]를 swap했다면 arr[0][2]일땐 왼쪽을 검사할 필요 없음 이때, 배열 int dx.. 2024. 3. 27.
[c++] 6588 백준 문제풀이(시간초과 해결) 1. 문제 https://www.acmicpc.net/problem/6588 6588번: 골드바흐의 추측 각 테스트 케이스에 대해서, n = a + b 형태로 출력한다. 이때, a와 b는 홀수 소수이다. 숫자와 연산자는 공백 하나로 구분되어져 있다. 만약, n을 만들 수 있는 방법이 여러 가지라면, b-a가 가장 큰 www.acmicpc.net 2. 시간초과 코드 #include #include using namespace std; bool isPrime(int num){ for(int i=2;i>n; if(n==0){ break; } for( i=3;i 2024. 3. 27.