반응형 전체 글58 백준 2740번 (행렬 곱셈) c++ 문제 문제 풀이 행렬 곱셈을 할 줄 안다면 정말 쉽게 풀 수 있다. 행렬 곱셈은 기본적으로 왼쪽 행렬의 행과 오른쪽 행렬의 열을 곱하고 더하는 것이다. 그래서 1행 1열 = 1행 X 1열 1행 2열 = 1행 X 2열 2행 1열 = 2행 X 1열 2행 2열 = 2행 X 2열 이런식으로 계산한다. 예제를 직접 손으로 풀어본다면 이러한 형태가 된다. 이러한 풀이방식 그대로 코딩을 하면 된다. 전체 코드 #include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); int N, M, K; int input_1[101][101] = {0,}; int input_2[101][101] = {0,}; cin >> N >> M.. 2022. 12. 25. 백준 2581번 (소수) c++ 문제 문제풀이 이 문제는 에라토스테네스의 체만 안다면 쉽게 풀 수 있는 문제다. 에라토스테네스의 체는 1 ~ 120 까지 나열을 한뒤 1. 1은 소수가 아니기 때문에 제외한다. 2. 2의 배수 중 2는 소수이기 때문에 남기고 나머지는 제외한다. (빨간색) 3. 3의 배수 중 3은 소수이기 때문에 남기고 나머지는 제외한다. (초록색) 4. 5의 배수 중 5는 소수이기 때문에 남기고 나머지는 제외한다. (파란색) 5. 7의 배수 중 7은 소수이기 때문에 남기고 나머지는 제외한다. (노란색) 6. 위 과정을 반복한다. 이렇게 먼저 N까지 소수를 판별한뒤 답을 출력하면 된다. 전체 코드 #include using namespace std; int prime[10001]; int main(){ ios_base::.. 2022. 12. 25. 백준 1676번 (팩토리얼 0의 개수) c++ 문제 문제풀이 팩토리얼은 1부터 N까지 곱하는 것을 뜻한다. 그러면 10이나 100을 곱할때 끝에 0이 생기는 것을 알 수 있다. 하지만 단순히 10이나 100의 갯수를 센다고 해서 해결이 되지 않는다. 5!의 경우를 생각해보자. 1 X 2 X 3 X 4 X 5 = 120 10을 곱하지 않았는데도 0이 생긴것을 알 수 있다. 2 X 5 가 존재할 때 0이 붙는 것을 생각할 수 있다. 그러면 2의 배수와 5의 배수를 각각 짝지어 세어주면 문제가 풀릴거 같다. 2의 배수가 5의 배수보다 숫자가 훨씬 많기 때문에 5의 배수만 세주면 될거 같지만, 아직 더 생각해야할 조건이 남아 있다. 만약 25의 경우는 어떨까? 25 = 5 X 5 이기 때문에 5가 2개가 필요하다 그러면 0도 2개가 필요하다는 걸 우리는 알.. 2022. 12. 25. 백준 1427번 (소트인사이드) c++ 문제 문제풀이 단순히 수를 받아 내림차순으로 자릿수를 바꿔줘야 한다. N의 조건이 1,000,000,000 이기 때문에 char 형식으로 바꿔 문자열로 받는다고 생각을 바꿔보자. 그러면 char input[11] 선언해줘도 무방하다. 그렇게 문자열을 받아 sort 함수를 쓰면 된다. 하지만 sort 함수의 기본 정렬은 오름차순이다. 그래서 우리는 sort(input, input + N, greater()) greater를 써야 한다. 오름차순 less() 내림차순 greater() 전체 코드 #include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(0); char input[11] = {0,}; cin >> in.. 2022. 12. 24. 이전 1 ··· 11 12 13 14 15 다음 반응형