Algorithm 24

[5397] 달팽이사각형 (reserved)

문제 정사각형의 크기를 입력 받은 후 반시계 방향으로 돌면서 다음과 같은 형태로 출력하는 프로그램을 작성하시오. 크기가 5일 경우 입력 정사각형의 크기 n(1부터 100사이의 정수)을 입력받는다. 출력 위에서 언급한 형태로 정사각형의 내부 숫자를 차례로 채운 후의 모습을 출력한다. 숫자 사이는 공백으로 구분한다.​ 예제1 입력 5 예제1 출력 5 4 3 2 1 6 19 18 17 16 7 20 25 24 15 8 21 22 23 14 9 10 11 12 13 예제2 입력 2 예제2 출력 2 1 3 4 int main() { int n; scanf("%d", &n); if (n 100) { return 0; } else { reverseSnail(n); } return 0; } - 데이터 값 n을 입력받고..

[1707] 달팽이 사각형

문제 정사각형의 크기를 입력 받은 후 시계 방향으로 돌면서 다음과 같은 형태로 출력하는 프로그램을 작성하시오. (1) 가장 왼쪽 위의 좌표부터 차례로 숫자를 대입 시킨다. (2) 오른쪽으로 채워 나가다가 끝이면 다시 아래 → 왼쪽 → 위 →오른쪽의 순으로 모두 채워질 때까지 반복한다. 입력 정사각형의 크기 n(1부터 100사이의 정수)을 입력받는다. 출력 위에서 언급한 형태로 정사각형의 내부 숫자를 차례로 채운 후의 모습을 출력한다. 숫자 사이는 공백으로 구분한다. 예제1 입력 5 예제1 출력 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 예제2 입력 2 예제2 출력 1 2 4 3 배열을 채우는 위치 이동방법 1) 이..

[1641] 숫자삼각형

문제 삼각형의 높이 n과 종류 m을 입력받은 후 다음과 같은 삼각형 형태로 출력하는 프로그램을 작성하시오. 종류 1번의 숫자의 진행 순서는 처음에 왼쪽에서 오른쪽으로 진행 한 후 방향을 바꾸어서 이를 반복한다. 입력 삼각형의 크기 n(n의 범위는 100 이하의 홀수)과 종류 m(m은 1부터 3사이의 정수)을 입력받는다. 출력 위에서 언급한 3가지 종류를 입력에서 들어온 높이 n과 종류 m에 맞춰서 출력한다. 숫자사이는 공백으로 구분한다. 입력된 데이터가 주어진 범위를 벗어나면 "INPUT ERROR!"을 출력한다. 예제1 입력 7 3 예제1 출력 1 1 2 1 2 3 1 2 3 4 1 2 3 1 2 1 예제2 입력 3 2 예제2 출력 0 0 0 0 0 1 1 1 2 예제3 입력 5 1 예..

[1329] 별삼각형3

문제 삼각형의 높이 N을 입력받아 아래와 같은 모양을 출력하는 프로그램을 작성하시오. 입력 삼각형의 높이 N(N의 범위는 100 이하의 양의 홀수)을 입력받는다. 출력 N의 높이에 맞추어 주어진 형태의 모양을 출력한다. 입력된 데이터가 주어진 범위를 벗어나면 "INPUT ERROR!"를 출력한다. 예제 입력 7 예제 출력 * *** ***** ******* ***** *** * 삼각형의 높이 N(N의 범위는 100 이하의 양의 홀수)을 입력받는다. 입력된 데이터가 주어진 범위를 벗어날 경우 설계를 해 둔다. int N; scanf("%d", &N); if (N 100 || N % 2 == 0) { printf("INPUT ERROR!\n"); return 0; } 1) 위쪽 삼각형 출..

[1719] 별삼각형2

문제 삼각형의 높이 n과 종류 m을 입력 받은 후 다음과 같은 삼각형 형태로 출력하는 프로그램을 작성하시오. 다음은 n이 5인 경우의 예시이다. 입력 삼각형의 크기 n(n의 범위는 100 이하의 홀수)과 종류 m(m은 1부터 4사이의 정수)을 입력받는다. 출력 위에서 언급된 4가지 종류를 입력에서 들어온 높이 n과 종류 m에 맞춰서 출력한다. 입력된 데이터가 주어진 범위를 벗어나면 "INPUT ERROR!"을 출력한다. '*'과 '*' 사이에는 공백이 없다. 예제1 입력 5 1 예제1 출력 * ** *** ** * 예제2 입력 7 4 예제2 출력 **** *** ** * ** *** **** 삼각형의 크기 n(n의 범위는 100 이하의 홀수)과 종류 m(m은 1부터 4사이의 정수)을 입력받는다. 조건을 ..

[1523] 별삼각형1

문제 삼각형의 높이 n과 종류 m을 입력 받은 후 다음과 같은 삼각형 형태로 출력하는 프로그램을 작성하시오. 입력 삼각형의 크기 n(n의 범위는 100 이하의 자연수)과 종류 m(m은 1부터 3사이의 자연수)을 입력받는다. 출력 위에서 언급한 3가지 종류를 입력에서 들어온 높이 n과 종류 m에 맞춰서 출력한다. 입력된 데이터가 주어진 범위를 벗어나면 "INPUT ERROR!"을 출력한다. 예제1 입력 3 2 예제1 출력 *** ** * 예제2 입력 4 3 예제2 출력 * *** ***** ******* 예제3 입력 200 3 예제3 출력 INPUT ERROR! 별 삼각형 기본이론 별의 개수는 결과적으로 i = 줄 번호 개수, 한줄이 끝날때마다 \n 출력. - 행의 번호(i) 를 결정 (1~N 또는 N~1..

[5545] 연필공장

문제 연필 공장에서는 완성되지 않은 연필에 대하여 도색 기계로 도색 작업을 통해 색을 입히고, 광택 기계로 광택 작업을 하여 윤기가 나게하는 두 가지의 공정을 순서대로 적용시켜 연필을 완성시킨다. 그러나 두 기계 모두 좋은 기계가 아니어서 종종 문제를 일으킨다. 도색 기계는 P개의 연필을 성공적으로 도색하고 바로 직후 하나의 연필의 도색을 실패한다. ​광택 기계는 V개의 연필을 성공적으로 작업한 직후 하나의 연필의 광택 작업을 실패한다. ​그리하여 연필 공장은 세 종류의 다른 불량 연필을 만들어낸다: 두 작업 모두 실패한 연필, 도색을 실패한 연필, 광택을 실패한 연필. 세 정수 P,V,K가 주어지면 K개의 연필을 공정하는 작업이 끝난 후 네 종류의 서로 다른 연필의 개수를 출력하는 프로그램을 작성합니다..

[1002] 6. 최대공약수, 최소공배수

문제 n개의 정수를 입력받아서 최대공약수와 최소공배수를 구하는 프로그램을 작성하여 보자. 입력 첫째 줄에 N (2≤N≤10) 을 입력 받고 다음 줄에 N개의 정수를 공백으로 구분하여 입력 받는다. 입력 받는 정수는 2이상 10,000 이하이다. 데이터의 크기가 주어진 범위를 벗어나는 입력은 없다. 출력 입력받은 정수들의 최대공약수와 최소공배수를 공백으로 구분하여 출력한다. 최소공배수는 20억 이하의 정수이다. 예제 입력 3 2 8 10 예제 출력 2 40 [1658]문제를 조금 확장한 형태인데, 여러개의 최대공약수와 최소공배수를 요구하고 있다. 가장 효율적인 방법(가장 많은 수의 최대공약수를 빠른 시간에 구하는 방법) 은 (1) a, b의 최대공약수를 구하고 (2) c의 최대 공약수를 구하는 것이다. <..

[1658] 최대공약수와 최소공배수

문제 두개의 자연수를 입력받아 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오. 입력 입력 파일의 첫째 줄에는 두 개의 자연수가 주어진다. 이 둘은 10,000이하의 자연수이며 사이에 한 칸의 공백이 주어진다. 출력 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. 예제 입력 24 18 예제 출력 6 72 최대공약수(GCD) : 공약수는 최대공약수의 약수이다. - 공약수 : 어떤 두 수 이상의 공통인 약수 - 최대공약수 : 공약수들 중 가장 큰 수 최대공약수를 구하기 위한 함수 int gcd_get(int x, int y) { int gcd; for (int i = 1; i

[2809] 약수

문제 한 개의 정수를 입력받아 입력받은 정수의 약수를 모두 출력하는 프로그램을 작성하시오. 입력 정수 N이 주어진다. (2 ≤ N ≤ 21억) 출력 N의 약수를 작은 수부터 차례로 모두 출력한다. 예제 입력 24 예제 출력 1 2 3 4 6 8 12 24 처리조건 약수 : 어떤 수를 나누어 떨어지게 하는 수 - a * b = c 일 경우 a 와 b는 c의 약수가 되며, 어떤 수 i가 N의 약수일 경우 N % i = 0 이다. - 1은 모든 수의 약수이며 자기 자신 또한 약수가 된다. 따라서 1보다 큰 자연수라면 반드시 2개 이상의 약수를 가지게 된다. - a * b = c 일때 a가 작은수인 경우 b = c /a 로 접근이 가능하며, a * a 0; i--) { printf("%d ", arr[i - 1..