목록알고리즘 (547)
N
문제 설명 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 c를 2진법으로 표현한 문자열로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 1이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 s의 길이는 1 이상 150,000 이하입니다. s에는 '1'이 최소 하나 이상 포함되어 있습니다. 문자열을 다루는 ..
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWkIlHWqBYcDFAXC&categoryId=AWkIlHWqBYcDFAXC&categoryType=CODE&&& SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1 ~ N, 1 ~ M 까지의 카드가 있으므로, 모든 카드의 합을 구하여 나온 횟수를 카운팅하면 된다. 그 중 가장 많이 나온 합의 횟수를 *max_element()함수를 이용하여 찾은 후, 2 ~ 40 까지 카운팅 횟수와 같은 수를 출력해주면 된다. 2부터 시작하는 이유는 1 + 1 = 2 가 합의 최솟값이기 때문이다..! ..
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWkIdD46A5EDFAXC&categoryId=AWkIdD46A5EDFAXC&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com N개의 제목을 입력받으면서 맨 앞의 알파벳을 확인해야 한다. 우선 26 길이의 bool형 벡터를 선언하고 false로 초기화한다. N개의 문자열을 s에 저장. v[s[0] - 'A']를 true로 바꿔주도록 한다. 모든 문자열을 입력 받은 후, v 벡터를 순회하면 된다. 순회하기 전 'A'가 쓰였는지 v[0]을 확인하고 미리 ans..
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWjlFcGK3dMDFAVT&categoryId=AWjlFcGK3dMDFAVT&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com int형 벡터를 [N][M + 1]로 선언해준다. v[i][M]에는 각 사람이 문제를 푼 개수를 저장해준다. N명의 사람의 문제 개수를 입력 받고, 가장 많이 푼 개수를 비교하여 계속 바꿔주도록 한다. 그리고 마지막에 가장 많이 푼 개수와 v[i][M]을 비교하여 사람을 카운팅해주면 된다. #include #include using..
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWh4FhG6Ei4DFAXp&categoryId=AWh4FhG6Ei4DFAXp&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문자열을 비교하면 된다. 완전탐색을 하는데, '*'은 아무 숫자가 가능하니 continue로 넘어가주고, '*'이 아니면 비교를 하여 flag를 바꿔주면 된다. 만약 비교 중 같지 않다면 바로 break를 해주면 된다. #include #include #include using namespace std; int main(void) ..
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWhT_2HKQNADFAW_&categoryId=AWhT_2HKQNADFAW_&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 차례대로 x1, y1, x2, y2 좌표를 저장한다. 그리고 N개의 점 x, y를 입력받아 검사를 하도록 한다. 1. 점이 직사각형 내부에 있는 경우는 x, y가 각각 x1, y1 보다 크고(>) x2, y2 보다 작은(> t; for(int tc = 1; tc > x1 >> y1 >> x2 >> y2; cin >> N; for(i..
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWgv9va6HnkDFAW0&categoryId=AWgv9va6HnkDFAW0&categoryType=CODE SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 참고 블로그 jksk0115.tistory.com/66 [D3] [6808] 규영이와 인영이의 카드게임 1. 설계 규영이가 내는 카드 순서는 고정 되어 있으므로 인영이가 낼 수 있는 카드의 모든 경우의 수(9!)를 확인하면 된다. 모든 경우의 수를 확인하는 일부 문제는 부분적으로 최적화가 가능한데 jksk0115.tistory.co..
swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWgqpQV6r8gDFAW0&categoryId=AWgqpQV6r8gDFAW0&categoryType=CODE 카드의 색깔과 숫자를 string 형태로 받아와서 한꺼번에 처리했다. char형 벡터 R, G, B를 선언하여, 카드 수를 받고 정렬하였다. check함수를 통해 규칙을 찾아내면 된다. 우선 count1, count2로 해당 카드 색깔의 카드 수를 인덱스에 맞춰 늘려주도록 한다. 그리고 2가지 방법으로 규칙을 찾아야 하기 때문에 count1, count2를 이용하였다. 각 벡터마다 for문을 2번씩, 총 4번을 돌아야한다. count1 우선 동일 색상에서 동일한 숫자 3장..