본문 바로가기
반응형

알고리즘77

[BOJ/백준] 5086번 배수와 약수 - [c/c++] 풀이 https://www.acmicpc.net/problem/5086 5086번: 배수와 약수 각 테스트 케이스마다 첫 번째 숫자가 두 번째 숫자의 약수라면 factor를, 배수라면 multiple을, 둘 다 아니라면 neither를 출력한다. www.acmicpc.net 문제 해설 A가 B의 약수인 지 확인하는 방법은 B를 A로 나누었을 때 나머지가 0인지 확인하면 된다. 약수일 경우 나누어 떨어지기 때문이다. 비슷하게 A가 B의 배수인지 확인하는 방법도 A를 B로 나누었을 때 나머지가 0인 지 확인하면 된다. 코드 c #include int main() { int a, b; scanf("%d %d", &a, &b); while(a != 0 && b != 0) { if(b % a == 0) printf(".. 2023. 6. 9.
[BOJ/백준] 10817번 세 수 - [c/c++] 풀이 https://www.acmicpc.net/problem/10817 10817번: 세 수 첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100) www.acmicpc.net 문제 해설 먼저 A, B, C가 각각 가장 클 때로 나눈다. 그 안에서 나머지 2개를 비교하여 두 번째로 큰 정수를 result 변수에 저장한다. 예: A가 가장 클 때 B, C를 비교하여 두 번째로 큰 정수를 찾는다. 설명과 함께 아래 코드를 보면 이해하기 편할 거다. 코드 c #include int main() { int a, b, c; int result; scanf("%d %d %d", &a, &b, &c); if(a >= b && a >= c) { if(b > c) result =.. 2023. 6. 5.
[BOJ/백준] 10798번 세로읽기 -[c/c++] 풀이 https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 문제 해설 5줄의 문자열을 입력받은 후 최대 15문자가 들어오니 for문을 15까지 돌린다. 이렇게 되면 입력되지 않은 인덱스의 값을 출력할 수 있으므로 해당 값이 NULL이 아닐 경우에만 출력하도록 한다. char 자료형을 전역 변수로 선언하면 NULL로 초기화된다. 코드 c #include char arr[5][15]; int main() { for (int i = 0; i < 5; i.. 2023. 6. 4.
[BOJ/백준] 2566번 최댓값 - [c/c++] 풀이 https://www.acmicpc.net/problem/2566 2566번: 최댓값 첫째 줄에 최댓값을 출력하고, 둘째 줄에 최댓값이 위치한 행 번호와 열 번호를 빈칸을 사이에 두고 차례로 출력한다. 최댓값이 두 개 이상인 경우 그 중 한 곳의 위치를 출력한다. www.acmicpc.net 문제 해설 9 x 9 이차원 배열을 입력 받고 가장 큰 수와 위치를 출력하면 된다. 배열을 만들지 않고 변수 하나로 입력 받으면서 최댓값을 찾아주었다. 인덱스인 0, 0과 달리 1,1부터 시작이므로 유의 해야 한다. 모든 수가 0일 경우도 있기 때문에 아래 코드에서는 max 변수는 0이 아닌 -1로 초기화 해야 한다. 코드 c #include int a, x, y; int maxi = -1; int main() { .. 2023. 6. 4.
반응형